¿Cómo puedo saber si Autovacuum de PostgreSQL se está ejecutando en UNIX?
(3)
PostgreSQL 9.3
Determine si Autovacuum se está ejecutando
Esto es específico de Postgres 9.3 en UNIX. Para Windows, vea esta question .
Query Postgres System Table
SELECT
schemaname, relname,
last_vacuum, last_autovacuum,
vacuum_count, autovacuum_count -- not available on 9.0 and earlier
FROM pg_stat_user_tables;
Estado del proceso del sistema 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 desea saber más sobre la actividad de autovacuum , configure log_min_messages
en DEBUG1..DEBUG5
. El comando SQL VACUUM VERBOSE
emitirá información a nivel de registro INFO
.
Con respecto al Daemon Autovacuum, los documentos de Posgres declaran:
En la configuración predeterminada, se habilita el vacío automático y se configuran adecuadamente los parámetros de configuración relacionados.
Ver también:
¿Cómo se puede saber si el demonio de autovacuum en Postgres 9.x está ejecutando y manteniendo el clúster de la base de datos?
Estoy usando:
select count(*) from pg_stat_activity where query like ''autovacuum:%'';
en collectd para saber cuántos autovacuum se están ejecutando al mismo tiempo.
Puede que necesites crear una función de seguridad como esta:
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;
y llamar a eso desde collectd.
En Postgres anterior, "consulta" era "current_query", así que cámbielo de acuerdo con lo que funciona.
También puede ejecutar pg_activity para ver las consultas actualmente en ejecución en su base de datos. En general, de todas formas, dejo una terminal abierta, ya que es muy útil.