Que te dicen los logs ?
On 11/06/2019 1:26 AM, José González wrote:
Tengo el mismo problema con el vacuum. Antes usaba la versión 9.4 y
todo bien. Ahora uso la 9.6 y tengo problemas.
Saludos, jose
El dom., 9 jun. 2019 a las 22:07, Carlos T. Groero Carmona
(<cton...@gmail.com <mailto:cton...@gmail.com>>) escribió:
Despues de mas de 19 horas seguidas, estos procesos se siguen
ejecutando, sin reflejar ningun resultado en la base de datos.
pid| query| age
-------+----------------------------------------------------+-------------------------
6279 | autovacuum: VACUUM ANALYZE pg_catalog.pg_class | 25 days
18:37:41.526188
32520 | VACUUM (ANALYZE);| 19:27:39.746022
20776 | vacuum ANALYZE verbose;| 19:11:23.328425
Los he tratado de detener si resultado alguno.
postgres=# select pg_terminate_backend(32520);
pg_terminate_backend
----------------------
t
(1 row)
pid|query| age
-------+-------------------------------------------------------------+-------------------------
6279 | autovacuum: VACUUM ANALYZE pg_catalog.pg_class| 25 days
18:41:12.710997
32520 | VACUUM (ANALYZE); | 19:31:10.930831
20776 | vacuum ANALYZE verbose;
Hace 25 dias que el proceso 6279 ha estado corriendo
interrumpidamente, si no mal recuerdo en un momento que reinicie
el servicio de postgres ese proceso se detuvo forzosamente y
cuando el servicio reanudo entonces el proceso se empezo a
ajecutar interrumpidamente desde ese entonces.
Autovacuum se esta ejecutando sin problema, pero no puedo ejecutar
un vacuum manual.
Ejecute un vacuum manual a una tabla specificamente, pero el
relfrozendid no se reinicio tampoco.
postgres=# vacuum ANALYZE pg_shdescription;
VACUUM
postgres=# vacuum pg_shdescription;
VACUUM
table_name |age| percentage_transaction_ids_used | table_size
-----------------------+-----------+---------------------------------+------------
pg_shdescription| 747265306 |35.584 | 48 kB
No recuerdo si lo dije anteriormente, pero el mismo cron job ha
estado ejecutandoce por casi 4 meses en mi servidor de
pre-production sin ningun tipo de problema.
Algo que deben saber, que este es el servidor que hace unas
semanas que migre hace 9.6 del servidor que tenia la tabala
pg_databases corructa en 9.3, y ahora que me pongo a pensar desde
que lo hice el analyze y vacuum manual de alguna manera u otra no
han funcionado correctamente, pero autovacuum reinicio todo los
XID para evitar un wraparound en us momento.
Este un comportamiento que no habia visto antes en postgres, asi
que agradecere cualquier tipo de ayuda, sugerencia o documentacion
que me guie a una solucion.
Carlos
On Sun, Jun 9, 2019 at 1:59 AM Carlos T. Groero Carmona
<cton...@gmail.com <mailto:cton...@gmail.com>> wrote:
Hola lista,
Esyou utilizando la version 9.6 de postgres, y hal algo que me
tiene un poco confundifo con utovacuum/analyze.
Primero desde que migre a este nueva version, se ha estado
ejecuatando un proceso autovacuum analyze por mas de 24 dias,
he tratado de eliminarlo ejecutando terminate_backend() y no
se detiene, tambien trate con kill pid y tampoco se detiene.
Lo otro que me esta sucediendo un poco raro es que se esta
demorando demaisado un siemple vacuum analyze en base de datos
con menos de 1GB de tamano, ademas lo ejecute en postgres
database, y nunca se reinicio el xid.
postgres=# vacuum ANALYZE ;
VACUUM
postgres=# SELECT
datname,
max(age(datfrozenxid)),
round(max(age(datfrozenxid)) / 2100000000.0 * 100.0, 3) AS
percentage_transaction_ids_used
FROM pg_database
group by datname
order by 2 desc;
datname |max| percentage_transaction_ids_used
-------------------------+-----------+---------------------------------
sami_production | 874194263 |41.628
locations | 799037901 |38.049
ofx_production| 799037901 |38.049
locations_backup| 799037901 |38.049
internal_p2p_production | 799035844 |38.049
template1 | 799035844 |38.049
semi_temp | 799035709 |38.049
auth_db | 749061558 |35.670
template0 | 749045061 |35.669
postgres| 730570342 |34.789
(10 rows)
el xid in postgres deberia estar por debajo del 10% despues de
ejecutar vacuum en esa base de datos.
postgres=# select pg_terminate_backend(20776);
pg_terminate_backend
----------------------
t
(1 row)
postgres=# select pid, query, age(now(), xact_start) from
pg_stat_activitywhere upper(query) like upper('vacuu%') and
state = 'active' or upper(query) like upper('auto%') order by
3 desc;
pid|query | age
-------+------------------------------------------------------+-------------------------
6279 | autovacuum: VACUUM ANALYZE pg_catalog.pg_class | 24
days 23:43:14.417379
26680 | autovacuum: VACUUM public.transactions_w | 02:43:22.432889
28142 | autovacuum: VACUUM public.featureusagereportusers|
01:06:05.995937
1682 | autovacuum: VACUUM public.sessionusagereportusers|
00:58:54.605847
30236 | autovacuum: VACUUM ANALYZE public.sessions |
00:43:47.847795
32520 | VACUUM (ANALYZE);| 00:33:12.637213
20776 | vacuum ANALYZE verbose;| 00:16:56.219616
10801 | autovacuum: VACUUM ANALYZE pg_catalog.pg_attribute |
00:16:54.8015
24212 | autovacuum: VACUUM public.transactions_f |
00:16:27.303903
1533 | autovacuum: VACUUM public.mobileusermo . | 00:10:12.41268
27837 | autovacuum: VACUUM public.batchhistories_fieldpoint|
00:00:53.361894
30151 | autovacuum: VACUUM public.featureusagereportyearlies |
00:00:23.799779
(12 rows)
El proceso 32520 es ejecutado por un cronjob que tengo
planificado correr cada domingo a la 1am
y el proceso 20776 lo ejecute para probar si mi sospecha de
que vacuum no se esta ejecutando correctamente y no quisiera
usar la palabra corrupta, apenas cabo de migrar a la version
9.6 porque tuve pg_databa estaba corructa en la version 9.3
sobre autovacuum solo tengo 10 workers y el cost_limit es 1200.
Alguna idea de lo que esta pasando y como podria detener esos
processos que sin afectar el cluster.
es una option kill -9 vacuum_pid?
Una vez mas gracias por la ayuda,
Carlos