web-dev-qa-db-fra.com

Comment savoir si Autovacuum de PostgreSQL s'exécute sous UNIX?

Comment savoir si le démon autovacuum dans Postgres 9.x exécute et maintient le cluster de base de données?

43
Clint Pachl

PostgreSQL 9.3

Déterminer si Autovacuum est en cours d'exécution

Ceci est spécifique à Postgres 9.3 sous UNIX. Pour Windows, voyez ceci question .

Table système Query Postgres

SELECT
  schemaname, relname,
  last_vacuum, last_autovacuum,
  vacuum_count, autovacuum_count  -- not available on 9.0 and earlier
FROM pg_stat_user_tables;

Statut du processus du système Grep

$ ps -axww | grep autovacuum
24352 ??  Ss      1:05.33 postgres: autovacuum launcher process  (postgres)    

Grep Postgres Log

# grep autovacuum /var/log/postgresql
LOG:  autovacuum launcher started
LOG:  autovacuum launcher shutting down

Si vous souhaitez en savoir plus sur l'activité autovacuum , définissez log_min_messages à DEBUG1..DEBUG5. La commande SQL VACUUM VERBOSE affichera des informations au niveau du journal INFO.


Concernant le démon Autovacuum, les documents Posgres indiquent:

Dans la configuration par défaut, la mise sous vide automatique est activée et les paramètres de configuration associés sont correctement définis.

Voir également:

76
Clint Pachl

J'utilise:

select count(*) from pg_stat_activity where query like 'autovacuum:%';

dans collectd pour savoir combien d'autovacuum fonctionnent simultanément.

Vous devrez peut-être créer une fonction de sécurité comme celle-ci:

CREATE OR REPLACE FUNCTION public.pg_autovacuum_count() RETURNS bigint
AS 'select count(*) from pg_stat_activity where query like ''autovacuum:%'';'
LANGUAGE SQL
STABLE
SECURITY DEFINER;

et appelez ça depuis collectd.

Dans les Postgres précédents, "query" était "current_query", alors changez-le en fonction de ce qui fonctionne.

14
Charly Koza

Vous pouvez également exécuter pg_activity pour voir les requêtes en cours d'exécution sur votre base de données. En général, je laisse un terminal ouvert et cela fonctionne la plupart du temps car c'est très utile.

0
Philip Snyder