Скільки запитів за секунду виконує мій 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 .

Спосіб 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) і зберіть достатньо журналу для оцінки трафіку.

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


Я знаю, як обчислити транзакції за секунду. Питання стосується конкретних запитів на секунду. Одна транзакція може мати 0 або більше запитів.
Конрад Гарус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.