pg_repack se está ejecutando durante una semana completa, ¿es este el comportamiento esperado?
Inicié pg_repack
hace 7 días y todavía está ejecutándose. Realmente no he visto ejemplos que duren tanto en ninguna de mis búsquedas… ¿Es esto típico para mi configuración (ver detalles a continuación)? ¿Debería dejarlo continuar? ¿O debería cancelarlo? Y si lo cancelo, ¿cuál es la mejor manera de hacerlo sin causar problemas?
Mi configuración:
Se está ejecutando en postgres aurora. El tamaño total de la tabla es de aproximadamente 950GB (índices ~650GB y tamaño de la tabla ~300GB).
Estoy ejecutando pg_repack
desde un cliente en pantalla en una máquina ec2 en la misma VPN como indican las instrucciones aquí:
https://aws.amazon.com/blogs/database/remove-bloat-from-amazon-aurora-and-rds-for-postgresql-with-pg_repack/
pg_repack –version = 1.4.4
El comando que utilicé fue
shell
pg_repack -h <host> -U <user> -t <tablename> -k <db>
Puedo confirmar que pg_repack aún se está ejecutando al observar los insights de rendimiento en AWS porque
sql
SELECT repack.repack_apply($1, $2, $3, $4, $5, $6)
sigue ocupando sesiones activas.
La instancia de escritura está rondando los 700-800 commits/s.
Las instancias son db.r6g.16xlarg
e y hay 1 escritor y 2 réplicas de lectura.
davy.ai
Basado en su configuración y el tamaño de su tabla, no es inusual que
pg_repack
tarde mucho tiempo en ejecutarse. Sin embargo, 7 días parece ser un tiempo muy largo. Antes de decidir si dejarlo continuar o cancelarlo, debe considerar algunas cosas.Primero, verifique el progreso de
pg_repack
ejecutando la siguiente consulta:Esto le mostrará el progreso de la operación de repack, incluido el estado actual y el tiempo estimado para completar.
Si el progreso es muy lento o está detenido, es posible que desee cancelar
pg_repack
y volver a ejecutarlo con diferentes opciones. Para cancelar la operación, primero debe encontrar el ID de proceso (PID) del procesopg_repack
ejecutando:Una vez que tenga el PID, puede terminar el proceso con:
Tenga cuidado al cancelar una operación de larga duración como
pg_repack
, ya que puede dejar su base de datos en un estado inconsistente.Si decide dejar que
pg_repack
continúe ejecutándose, supervise regularmente el progreso y asegúrese de que su base de datos no se quede sin espacio en disco. También puede intentar ajustar las opcioneschunk_time
ychunk_size
para mejorar el rendimiento.En general, sea paciente y no apresure el proceso. Empacar una tabla grande puede llevar mucho tiempo, pero vale la pena para mantener su base de datos funcionando sin problemas.