El vaciado es una operación importante de mantenimiento de la base de datos de PostgreSQL. Se usa para recuperar el espacio de almacenamiento ocupado por filas actualizadas o borradas para evitar el sobredimensionamiento de la tabla o el índice. También se usa para congelar los IDs de transacción para evitar el ajuste de ID de transacción y para actualizar las estadísticas de la tabla.
Para obtener más información sobre el vaciado, consulta Vaciado de rutina.
Para automatizar el proceso de vaciado y actualizar de forma colectiva las estadísticas de la tabla, AlloyDB Omni admite el autovacuum adaptable. El autovacuum adaptable permite el ajuste automático de la carga de trabajo de vaciado cuando cambia tu carga de trabajo, quita las tuplas inactivas y actualiza las estadísticas de la tabla.
El autovacuum garantiza un rendimiento transaccional de la aplicación confiable y coherente, y mantiene la alta disponibilidad del sistema, ya que evita el ajuste de ID de transacción.
De forma predeterminada, AlloyDB Omni habilita el autovacuum adaptable. Puedes inhabilitar o modificar el autovacuum adaptable en AlloyDB Omni con marcas de base de datos.
Beneficios
El autovacuum adaptable ofrece los siguientes beneficios:
Ajuste automático de recursos. AlloyDB Omni ajusta automáticamente los recursos, como la CPU, la E/S, la cantidad de procesos de vaciado y la memoria para el proceso de vaciado, según el estado en tiempo real de la carga de trabajo y los recursos disponibles sin afectar el rendimiento del sistema.
Prevención del ajuste de ID de transacción. AlloyDB Omni supervisa el progreso del vaciado y la velocidad de consumo del ID de transacción. Cuando es necesario, AlloyDB Omni limita su consumo de ID de transacción mediante el vaciado de cada tabla de la base de datos, lo que evita el ajuste de ID de transacción.
Vaciado periódico de tablas. AlloyDB Omni activa el autovacuum según la cantidad de tuplas inactivas y las páginas que se deben analizar. Quita las tuplas inactivas de manera oportuna para evitar el sobredimensionamiento de la tabla o el índice.
Detección automática de bloqueadores. AlloyDB Omni detecta automáticamente bloqueadores, como transacciones de larga duración, transacciones preparadas huérfanas, ranuras de replicación huérfanas 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.
Configura el autovacuum adaptable
De forma predeterminada, el autovacuum adaptable está habilitado en AlloyDB Omni. Puedes inhabilitar el autovacuum adaptable si configuras la marca de base de datos enable_google_adaptive_autovacuum de una instancia en off.
AlloyDB Omni admite varias marcas de base de datos de PostgreSQL estándar relacionadas
con el vaciado y el autovacuum, por ejemplo, vacuum_cost_delay y autovacuum_vacuum_cost_delay.
No es necesario que establezcas valores en ninguna de estas marcas para que funcione el autovacuum adaptable, ya que este se adapta y optimiza su comportamiento a tus cargas de trabajo reales.
Si estableces valores en estas marcas, el autovacuum adaptable ajusta su comportamiento para tener en cuenta tus preferencias.
Para ver la lista completa de marcas de base de datos de PostgreSQL compatibles relacionadas con el vaciado y el autovacuum, consulta marcas de vaciado y marcas de autovacuum.