Як я можу сказати, скільки запитів за секунду виконує моя база даних Postgres?
Як я можу сказати, скільки запитів за секунду виконує моя база даних Postgres?
Відповіді:
Використовуйте цей запит, щоб прочитати загальну кількість транзакцій, виконаних у всіх базах даних:
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 .
Спосіб 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) і зберіть достатньо журналу для оцінки трафіку.
Примітка: жоден метод не буде включати запити, вбудовані у визначені користувачем функції.