Configurar el autovacuum adaptativo

En esta página se ofrece una descripción general de la función de autovacuum adaptativo de AlloyDB para PostgreSQL y se explica cómo configurarla.

El proceso de limpieza es una operación de mantenimiento importante de las bases de datos PostgreSQL. Se usa para reclamar el espacio de almacenamiento ocupado por las filas actualizadas o eliminadas para evitar que se infle la tabla o el índice. También se usa para inmovilizar los IDs de transacción y evitar que se repitan, así como para actualizar las estadísticas de la tabla.

Para obtener más información sobre el proceso de vacío, consulta Proceso de vacío rutinario.

Para automatizar el proceso de limpieza y actualización colectiva de las estadísticas de la tabla, AlloyDB admite la función de limpieza automática adaptativa. El vaciado automático adaptativo permite ajustar automáticamente la carga de trabajo del vaciado cuando cambia tu carga de trabajo, elimina las tuplas inactivas y actualiza las estadísticas de las tablas.

Autovacuum asegura un rendimiento transaccional de la aplicación fiable y coherente, y mantiene una alta disponibilidad del sistema evitando que se repitan los IDs de transacción.

De forma predeterminada, AlloyDB habilita la función de autovacuum adaptativa. Puedes inhabilitar o modificar el autovacuum adaptativo en AlloyDB mediante marcas de bases de datos.

Ventajas

La función de autovacuum adaptativo ofrece las siguientes ventajas:

  • Ajuste automático de los recursos. AlloyDB ajusta automáticamente los recursos, como la CPU, las operaciones de E/S, el número de procesos de vaciado y la memoria del proceso de vaciado, en función del estado en tiempo real de la carga de trabajo y de los recursos disponibles, sin afectar al rendimiento del sistema.

  • Prevención de la envoltura del ID de transacción. AlloyDB monitoriza el progreso del vacío y la velocidad de consumo del ID de transacción. Cuando es necesario, AlloyDB limita el consumo de IDs de transacción limpiando todas las tablas de la base de datos, lo que evita que los IDs de transacción se repitan.

  • Vacío periódico de las tablas. AlloyDB activa el autovacuum en función del número de tuplas inactivas y de las páginas que se deben analizar. Elimina las tuplas inactivas de forma oportuna para evitar que las tablas o los índices se inflen.

  • Detección automática de bloqueadores. AlloyDB detecta automáticamente los bloqueos, como las transacciones de larga duración, las transacciones preparadas huérfanas y los slots de replicación huérfanos, y muestra mensajes de advertencia similares a los siguientes en el registro postgres:

    Found a backend process PROCESS_ID with a long running transaction whose transaction
    id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
    

Configurar el autovacuum adaptativo

De forma predeterminada, el vaciado automático adaptativo está habilitado en AlloyDB. Puedes inhabilitar el vaciado automático adaptativo asignando el valor off a la marca de base de datos enable_google_adaptive_autovacuum de una instancia.

Para obtener más información sobre cómo definir marcas de bases de datos, consulta Configurar las marcas de bases de datos de una instancia.

AlloyDB admite varias marcas de bases de datos PostgreSQL estándar relacionadas con las funciones de vacío y de vacío automático, como vacuum_cost_delay y autovacuum_vacuum_cost_delay. No es necesario que definas valores en ninguna de estas marcas para que el vaciado automático adaptativo funcione, ya que este adapta y optimiza su comportamiento a tus cargas de trabajo reales. Si asignas valores a estas marcas, la función de autovacuum adaptativa ajustará su comportamiento para tener en cuenta tus preferencias.

Para ver la lista completa de marcas de bases de datos PostgreSQL admitidas relacionadas con vacuum y autovacuum, consulta las marcas de vacuum y las marcas de autovacuum.