Estou analisando problemas com nossas configurações de autovacuum e tentando entender last_autoanalyze
e last_autovacuum
do arquivo pg_stat_all_tables
.
Eu entendo que o autovacuum funciona de forma incremental, compactando e limpando tuplas mortas em lotes, depois dormindo por um momento, etc. Então, o que last_autovacuum
significa? É possível que o autovacuum esteja funcionando principalmente , mas que esse timestamp nunca seja atualizado (por exemplo, porque uma tupla não pôde ser removida)?
Muitos dos timestamps que vejo para nossas tabelas são antigos, embora eu tenha quase certeza de ter observado um encadeamento de autovacuum em execução em algumas das tabelas.
EDIT : Se não estou claro, minha pergunta é: last_autovacuum
significa ...
- a hora em que um processo incremental de autovacuum terminou pela última vez uma parte do trabalho nesta mesa e dormiu
- o momento em que um processo de autovacuum chegou ao final de uma mesa
- acima, mas somente se não houver tuplas que não possam ser removidas
- algo mais
Eu também queria saber isso, então pesquisei um pouco no código src do Postgres para tentar descobrir ...
https://github.com/postgres/postgres/blob/ca3b37487be333a1d241dab1bbdd17a211a88f43/src/backend/catalog/system_views.sql#L584
https://github.com/postgres/postgres/blob/ca3b37487be333a1d241dab1bbdd17a211a88f43/src/backend/utils/adt/pgstatfuncs.c#L267
https://github.com/postgres/postgres/blob/ca3b37487be333a1d241dab1bbdd17a211a88f43/src/include/pgstat.h#L740
Então, se eu segui o código corretamente, parece que o
last_autovacuum
timestamp é quando o processo começou , não quando terminou.O last_autovacuum nada mais é do que a última vez em que o daemon autovacuum fez o processo de limpeza nas tabelas
A visualização pg_stat_all_tables conterá uma linha para cada tabela no banco de dados atual (incluindo tabelas TOAST), mostrando estatísticas sobre acessos a essa tabela específica
Para mais informações, consulte a página do coletor de estatísticas do postgresql https://www.postgresql.org/docs/9.6/static/monitoring-stats.html