Я хочу профилировать (держать глаз) все действия, которые происходят в базе данных, которая находится в PostgreSQL.
Есть ли такая утилита, которая поможет мне сделать это?
Я хочу профилировать (держать глаз) все действия, которые происходят в базе данных, которая находится в PostgreSQL.
Есть ли такая утилита, которая поможет мне сделать это?
Для "сохранения глаз" я использую pgtop, программу, которая намеренно имитирует команду "сверху" Unix.
"Следите за" и "профиль" - две разные задачи, на мой взгляд.
Для профилирования (не просмотра в реальном времени, что происходит прямо сейчас, но чтобы посмотреть, какие запросы занимают больше всего времени и т.д.), проверьте pgFouine:
http://pgfouine.projects.postgresql.org/
Это позволит вам узнать, какие запросы являются ресурсоемкими, и предпримите соответствующие действия: добавьте отсутствующие индексы, перепишите запросы, используя другие методы и т.д.
Так как ребра ответит на другой инструмент профилирования pgbadger
, он вышел.
Вы можете найти это здесь:
http://dalibo.github.io/pgbadger/
вы можете получить очень подробный отчет и графики.
pgfouine больше не поддерживается, последнее обновление было в 2010 году.
Хорошо, если вы посмотрите, что происходит, в отношении выбора, обновления, удаления и т.д., в схеме pg_catalog
есть несколько просмотров, я в основном использую pg_stat_user_tables
и pg_stat_user_indexes
, но там намного больше, все в пределах pg_stat*
.
Также есть представление pg_stat_activity
, которое сообщает вам, что работает на вашем сервере прямо сейчас.
Я взломал четыре плагина munin, которые используют user_tables и user_indexes, они доступны там
Посмотрите Nagios-Plugin script или check_postgres.pl