Перейти к содержимому

Мониторинг PostgreSQL

psql

psql2

Ключевые метрики производительности:

Checkpoint write time ms/sec - это время в миллисекундах, которое требуется для записи контрольной точки. Контрольная точка - это процесс, который PostgreSQL использует для сохранения состояния базы данных на диск. Долгое время записи может указывать на проблемы с производительностью диска или большую нагрузку на запись данных. В идеале, время должно быть минимальным, чтобы избежать блокировок и задержек.

Checkpoint sync time - это время, затраченное на выполнение операции синхронизации при создании контрольной точки. Операция синхронизации гарантирует, что все изменения, сделанные в памяти, будут записаны на диск. Высокое значение может указывать на проблемы с дисковой подсистемой или медленные операции ввода-вывода. Долгое время синхронизации может привести к задержкам в обслуживании запросов.

Index sizes - это размеры индексов на ваших таблицах в базе данных PostgreSQL. Индексы используются для ускорения поиска данных в таблицах. Крупные индексы могут замедлять вставку, обновление и удаление данных. Растущие индексы также могут указывать на фрагментацию данных, что снижает производительность запросов.

Buffer allocated per second - это количество буферов, выделяемых в секунду. Буферы используются для временного хранения данных перед их записью на диск или отображением на экране. Высокие значения могут указывать на активную работу с буферами, что требует мониторинга нагрузки на память.

Backend FSync calls per second - это количество вызовов FSync для бэкендов в секунду. Операция FSync гарантирует, что все изменения, сделанные в памяти, будут записаны на диск. Высокое количество вызовов может указывать на большую нагрузку на дисковую систему или частые записи данных на диск.

Buffers written per backend - это количество буферов, записываемых каждым бэкендом. Бэкенды - это процессы, которые обрабатывают запросы к базе данных. Высокое количество записанных буферов может сигнализировать о высоком уровне изменений в базе данных.

Table raws inserted per second - это количество строк, вставленных в таблицу в секунду. Высокая скорость вставки данных указывает на активную запись в базу данных. Если скорость вставки падает, это может сигнализировать о проблемах с производительностью или блокировках.

Table sizes in bytes - это размеры таблиц в байтах. Растущие размеры таблиц могут привести к ухудшению производительности запросов.

Table bloat size and percent bloat - это размер и процент раздувания таблицы. Раздувание таблицы происходит, когда в ней хранится больше данных, чем необходимо для ее эффективной работы. Большой процент «раздувания» таблицы может привести к замедлению запросов и увеличению расхода дискового пространства.

Database connections count - это количество активных соединений к базе данных. Может указывать на высокую нагрузку на сервер, что требует настройки пула подключений и контроля за ресурсами.

Buffer hits per second - это количество попаданий в буфер в секунду. Попадание в буфер означает, что данные уже были загружены в память и не требуют повторной загрузки.

Deadlocks per second - это количество взаимных блокировок в секунду. Взаимоблокировка происходит, когда два или более процессов пытаются получить доступ к одному и тому же ресурсу одновременно. Наличие взаимных блокировок указывает на проблемы с конкурентным доступом к данным. Множество блокировок может вызвать простои и задержки в выполнении запросов.