Вы можете осуществлять мониторинг состояния отдельных хостов PostgreSQL, пользуясь встроенным в панель Linx Cloud инструментом мониторинга.
Этот инструмент доступен только если кластер PostgreSQL был создан с активной опцией «Включить мониторинг» и шаблоном конфигурации «Single» или «Master-Replica».
Как воспользоваться мониторингом
Чтобы посмотреть данные мониторинга:
- Откройте панель Linx Cloud.
- Перейдите в раздел «Базы данных→Инстансы баз данных».
- Найдите в списке нужный инстанс.
- Нажмите на хост инстанса, для которого требуется посмотреть данные мониторинга.
- Перейдите на карточку «Мониторинг».
Будет выведено несколько счетчиков и графиков:
- Счетчики отражают текущее значение метрик.
- Графики отражают динамику изменения значений метрик в рамках определенного временного периода.На линейке вверху можно выбрать интересующий временной период, за который нужно отобразить данные на графиках. Период по умолчанию — 12 часов.
Доступные метрики мониторинга
Счетчики
- Метрики CPU:
- Current IOWaitПроцент от общего количества ресурсов процессора хоста, затраченных на ожидание завершения операций ввода-вывода.
- Current CPUПроцент времени, в течение которого процессор хоста работает в пользовательском режиме. Или, иными словами, обеспечивает работу инстанса базы данных и связанной с ним инфраструктуры.
- RAM UsedПроцент занятой памяти (от общего количества памяти на хосте).
- Free connectionsПроцент доступных подключений от общего числа.
- Replication lagВремя отставания реплики (в секундах) от источника репликации.
Эта метрика показывается только при просмотре данных мониторинга хостов-реплик.
Графики
Нагрузка на базу данных:
- Fetch Data (Select)Интенсивность чтения из базы данных: количество извлеченных в ходе выполнения запросов к базе строк таблиц (в секунду).
- Returned DataИнтенсивность ответов от базы данных: количество возвращенных строк результатов выполнения запросов (в секунду).
- Update DataИнтенсивность обновления данных в базе данных: количество строк, измененное запросами
UPDATE
(в секунду). - Insert DataИнтенсивность вставки данных в базу данных: количество строк, вставленное запросами
INSERT
(в секунду). - Deleted DataИнтенсивность удаления данных из базы данных: количество строк, удаленное запросами
DELETE
(в секунду).
Нагрузка на дисковую подсистему:
- Disk Read TimeВремя (в секундах), затраченное на операции чтения с диска.
- Disk Write TimeВремя (в секундах), затраченное на операции записи на диск.
- Disk usedПроцент использованного дискового пространства (от общего объема на хосте). Показываются столбчатые диаграммы заполненности некоторых разделов: например, связанных с PostgreSQL и журналом транзакций WAL.
Использование сведений мониторинга
- Высокие показатели утилизации CPU и памяти, нагрузки на дисковую подсистему, а также интенсивная или неравномерная нагрузка на базу данных могут свидетельствовать о большой нагрузке на хосты или о неоптимальных индексах и запросах.В таком случае рекомендуется воспользоваться от имени администратора БД встроенными инструментами диагностики производительности PostgreSQL, например:
- Выполнить запросы к системной таблице pg_stat_activity, чтобы собрать статистику по выполняющимся запросам.Рекомендуется обратить внимание на запросы, которые выполняются дольше всех остальных.
- Воспользоваться командой EXPLAIN для поиска узких мест в таких медленных запросах.Рекомендуется обратить внимание на запросы, не использующие индексы (большое количество строк в
Seq Scan
). Затем можно создать или обновить требуемые индексы.
- Низкий процент свободных подключений (Free connections) может свидетельствовать как о большом количестве одновременно подключенных клиентов, так и о том, что есть длинные транзакции, которые используют открытое соединение слишком долго.В таком случае рекомендуется:
- Увеличить значение параметра
max_connections
. - Оптимизировать запросы так, чтобы не было длинных транзакций.
- Увеличить значение параметра
- Про устранение проблем, связанных с отставанием реплики, см. документацию Patroni и PostgreSQL.