it-swarm.com.de

Wie viele Abfragen pro Sekunde führt mein Postgres aus?

Wie kann ich feststellen, wie viele Abfragen pro Sekunde meine Postgres-Datenbank ausführt?

15
Konrad Garus

Verwenden Sie diese Abfrage, um die Gesamtzahl der Transaktionen zu lesen, die in allen Datenbanken ausgeführt wurden:

SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;

Wenn Sie denselben Zähler für nur eine Datenbank möchten, verwenden Sie:

SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';

Um TPS (Transaktionen pro Sekunde) zu berechnen, führen Sie die Abfrage mehrmals aus und berechnen Sie die Differenz über das Zeitintervall.

Dafür gibt es fertige Tools, eines davon ist http://bucardo.org/wiki/Check_postgres

Weitere Informationen: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW


Update: Konrad hat mein Missverständnis seiner Frage korrigiert. Ziel war es, Abfragen zu zählen, keine Transaktionen.

Wie zähle ich Abfragen?

Methode 1

Verwenden Sie pg_stat_statements Contrib.

Methode 2

Aktivieren Sie die vollständige Protokollierung von Abfragen für einen repräsentativen Zeitraum.

Um die vollständige Protokollierung zu aktivieren, ändern Sie für PostgreSQL 9.0 - 9.3 die folgenden Einstellungen in postgresql.conf

logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all

Wenn Sie auch die Abfragedauer anzeigen möchten, können Sie log_min_duration_statement = 0 statt von log_statement = all. Dies ist sehr nützlich für die Optimierung von Abfragen.

Laden Sie dann die Konfiguration neu (Neustart oder HUP) und sammeln Sie genügend Protokolle, um den Datenverkehr abzuschätzen.

Hinweis: Keine der Methoden enthält Abfragen, die in benutzerdefinierte Funktionen eingebettet sind.

12
filiprem