Сколько запросов в секунду выполняет мой Postgres?

15

Как я могу узнать, сколько запросов в секунду выполняет моя база данных Postgres?

Конрад Гарус
источник
Вы проверили: serverfault.com/questions/268506/…
@thtsigma Не отвечает на этот вопрос. Запрашивает статистику для MySQL, только статистику транзакций для PG.
1
Вы пробовали какие-либо инструменты профилирования Postgres, такие как pg_top ?
Emallove
postgresql.org/docs/9.3/static/… например, выберите tup_inserted из pg_stat_database
sivann

Ответы:

11

Используйте этот запрос, чтобы прочитать общее количество транзакций, выполненных во всех базах данных:

SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;

Если вы хотите один и тот же счетчик только для одной базы данных, используйте:

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

Чтобы рассчитать TPS (количество транзакций в секунду), выполните запрос несколько раз и рассчитайте разницу во временном интервале.

Для этого есть готовые инструменты, одним из которых является http://bucardo.org/wiki/Check_postgres

Дополнительная информация: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW


Обновление: Конрад исправил мое неправильное понимание его вопроса. Целью было подсчитывать запросы, а не транзакции.

Как считать запросы?

Способ 1

Используйте pg_stat_statements contrib.

Способ 2

Включите полную регистрацию запросов за репрезентативный период времени.

Чтобы включить полное ведение журнала, для PostgreSQL 9.0 - 9.3 измените следующие настройки в postgresql.conf

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

Если вы хотите увидеть также запрос продолжительности, вы можете установить log_min_duration_statement = 0 вместо из log_statement = all. Это очень полезно для настройки запросов.

Затем перезагрузите конфигурацию (перезапустите или HUP) и соберите достаточно журнала для оценки трафика.

Примечание: ни один из методов не будет включать запросы, встроенные в пользовательские функции.

filiprem
источник
Я знаю, как рассчитывать транзакции в секунду. Речь идет именно о запросах в секунду. Одна транзакция может иметь 0 или более запросов.
Конрад Гарус