¿Cómo puedo saber cuántas consultas por segundo se está ejecutando mi base de datos Postgres?
¿Cómo puedo saber cuántas consultas por segundo se está ejecutando mi base de datos Postgres?
Respuestas:
Use esta consulta para leer el número total de transacciones ejecutadas en todas las bases de datos:
SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;
Si desea el mismo contador para una sola base de datos, use:
SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';
Para calcular TPS (transacciones por segundo), ejecute la consulta varias veces y calcule la diferencia en el intervalo de tiempo.
Hay herramientas listas para eso, una de ellas es http://bucardo.org/wiki/Check_postgres
Más información: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW
Actualización: Konrad corrigió mi malentendido de su pregunta. El objetivo era contar consultas, no transacciones.
¿Cómo contar las consultas?
Método 1
Utilice pg_stat_statements contrib.
Método 2
Habilite el registro completo de consultas durante un período de tiempo representativo.
Para habilitar el registro completo, para PostgreSQL 9.0 - 9.3, cambie la siguiente configuración en postgresql.conf
logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all
Si desea ver también la duración de la consulta, puede establecerla en log_min_duration_statement = 0
lugar de log_statement = all
. Esto es muy útil para el ajuste de consultas.
Luego, vuelva a cargar la configuración (reinicio o HUP) y recopile suficiente registro para estimar el tráfico.
Nota: ninguno de los métodos incluirá consultas integradas en funciones definidas por el usuario.