Identificación y resolución de los bloqueadores de vaciado intensivo en RDS para PostgreSQL
En PostgreSQL, la limpieza es fundamental para garantizar el buen estado de la base de datos, ya que recupera espacio de almacenamiento y evita problemas relacionados con los identificadores de transacciones
La función postgres_get_av_diag()
ayuda a identificar los problemas que impiden o retrasan el avance de la limpieza agresiva. Se proporcionan sugerencias, entre otras, comandos para resolver el problema si es identificable o indicaciones para realizar diagnósticos adicionales cuando no se puede identificar el problema. Los bloqueadores de limpieza agresiva aparecen cuando su antigüedad supera el umbral de vacío automático adaptativo establecido por RDS, que es de 500 millones de identificadores de transacciones.
¿Qué antigüedad tiene el identificador de la transacción?
La función age()
de identificadores de transacción calcula el número de transacciones que se han producido desde el identificador de transacción descongelado más antiguo de una base de datos (pg_database.datfrozenxid
) o tabla (pg_class.relfrozenxid
). Este valor indica la actividad de la base de datos desde la última operación de limpieza agresiva y resalta la carga de trabajo probable para los próximos procesos de LIMPIEZA.
¿Qué es una limpieza agresiva?
Una operación de LIMPIEZA agresiva lleva a cabo un escaneo exhaustivo de todas las páginas de una tabla, incluidas las que normalmente se omiten durante las limpiezas normales. Este análisis exhaustivo tiene como objetivo congelar los ID de transacción que se acercan a su antigüedad máxima, evitando de forma eficaz una situación conocida como superposición de identificadores de transacción
Para que postgres_get_av_diag()
pueda detectar bloqueadores, el bloqueador debe haber realizado al menos 500 millones de transacciones.
Temas
Instalación de herramientas de supervisión y diagnóstico de autovacuum en RDS para PostgreSQL
Resolución de bloqueadores de vaciado identificables en RDS para PostgreSQL
Resolución de bloqueadores de vaciado no identificables en RDS para PostgreSQL
Resolución de problemas de rendimiento de vaciado en RDS para PostgreSQL
Explicación de los mensajes de tipo NOTICE en RDS para PostgreSQL