Метрики производительности
- Метрики производительности
- Requests
- calls pg_stat_statements
- TPS = sum(commits + rollbacks) pg_stat_database
- QPS = sum(calls)
- Tuples (строки - не равно calls) Ins, Upd, Delete, Select by таблица
- top 5 частых query модуль pg_stat_statements
- Errors
- Duration
- total_time pg_stat_statements
- длительность транзакций
- top 5 долгих query модуль pg_stat_statements
- Autovacuum - pg_stat_user_tables.last_autovasuum
- Saturation
- максимальное время простоя внутри транзакции (‘idle in transaction’, ‘idle in transaction (aborted)’) pg_stat_activity
- максимальное время ожидания клиентов (wait_event_type = ‘Lock’ pg_stat_activity)
- состояние соединений (active, idle и тп) pg_stat_activity - На каждый процесс есть отдельная строчка, которая показывает информацию по этому процессу:
- с какого хоста выполнено подключение
- под каким пользователем, под каким именем
- когда запущена транзакция
- какой сейчас выполняется запрос, какой запрос выполнялся последним
- размеры таблиц
- top 5 больших (кол-во возвращаемых данных) query модуль pg_stat_statements
- частые чекпоинты pg_stat_bgwriter (IO влияние)
TODO
- Cache read speed (MB/s) Скорость чтения в Мб/c из памяти (кэша)
- Cache write speed (MB/s) Скорость записи в Мб/c в память (кеш)
- Temp read speed (MB/s) Скорость чтения в Мб/c данных из временных файлов
- Temp write speed (MB/s) Скорость записи в Мб/c данных во временные файлы
- Cache Hit Ratio – вероятность попадания в кеш
- Memory/Temp ratio Соотношение записи в память и временные файлы
- CPU heavy queries (s ) Потреблённые ресурсы CPU (в сек) со стороны тяжелого запроса в момент его окончания, если его длительность больше чем 10 сек.
Доступность
- sum(total_time)/sum(calls) pg_stat_statements
- Uptime
- Когда PostgreSQL запустился, начинается отчитываться uptime. Но если в какой-то момент, например, ночью выполнялась какая-то задача, пришел OOM-killer и завершил принудительно дочерний процесс PostgreSQL, то в этом случае PostgreSQL завершает соединение всех клиентов, сбрасывает область shared памяти и начинает восстановление с последней контрольной точки. И пока длится это восстановление с контрольной точки, база не принимает подключения, т. е. эту ситуацию можно оценивать, как downtime. Но при этом счетчик uptime не сбросится, потому что он учитывает время запуска postmaster с самого первого момента.
- Количество воркеров Autovacuum