2010-12-13 1 views
0

Я хочу получить статистику о соединениях «без дела».Как я могу получить статистические данные о соединениях «без дела в транзакции» с моим экземпляром PostgreSQL?

Эта статистика должна быть частью результатов тестов производительности, и она может выявить некоторые ошибки в тестируемой системе.

Что я могу использовать для сбора этой статистики?

ответ

1

Я не уверен, что вы имеете в виду с «статистика», но вы можете увидеть все открытые соединения (и их состояние транзакции), запрашивая вид системы pg_stat_activity:

http://www.postgresql.org/docs/current/static/monitoring-stats.html#MONITORING-STATS-VIEWS

+0

Ну, если это работает, ничто не мешает мне создать простой инструмент, который выполняет этот запрос каждые 30 секунд и добавляет его результат в журнал. Вот что я имею в виду под «статистикой». – Roman

+0

Проверьте pgfoundry, я думаю, что уже есть скрипты, плавающие вокруг, которые делают это –

1

В postgresql.conf набор каротаж в

log_statement = 'all'    # none, ddl, mod, all 

и проверить, что

log_line_prefix='%t:%r:%a:%[email protected]%d:[%p]: ' 

содержит% p, что является [идентификатором процесса] SQL.

После перезагрузки настройки базы данных, в таблице * pg_stat_activity * вы можете прочитать колонку procpid из на холостом ходу в транзакции процесса.

Теперь вы можете grep через log-файлы, чтобы увидеть, что SQL был выполнен в соединениях до того, как они стали простоя в транзакции.

Смежные вопросы