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 las tablas, AlloyDB Omni admite la 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 Omni habilita la función de autovacuum adaptativo. Puedes inhabilitar o modificar el autovacuum adaptativo en AlloyDB Omni mediante marcas de bases de datos.
Ventajas
La función de autovacuum adaptativo ofrece las siguientes ventajas:
Ajuste automático de los recursos. AlloyDB Omni 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 Omni monitoriza el progreso del vacío y la velocidad de consumo del ID de transacción. Cuando es necesario, AlloyDB Omni limita el consumo de IDs de transacción limpiando todas las tablas de la base de datos, lo que evita que se repitan los IDs de transacción.
Vacío periódico de las tablas. AlloyDB Omni 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 Omni 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, la función de autovacuum adaptativa está habilitada en AlloyDB Omni. 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.
AlloyDB Omni admite varias marcas de bases de datos PostgreSQL estándar relacionadas con vacuum y autovacuum, como vacuum_cost_delay
y autovacuum_vacuum_cost_delay
.
No es necesario que definas valores en ninguna de estas marcas para que funcione el autovacuum adaptativo, 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.