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_activity  where
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

Reply via email to