VK Cloud logo
Обновлена 20 декабря 2023 г. в 05:58

Мониторинг PostgreSQL

Вы можете осуществлять мониторинг состояния отдельных хостов PostgreSQL, пользуясь встроенным в панель VK Cloud инструментом мониторинга.

Как воспользоваться мониторингом

Чтобы посмотреть данные мониторинга:

  1. Откройте панель VK Cloud.
  2. Перейдите в раздел «Базы данных→Инстансы баз данных».
  3. Найдите в списке нужный инстанс.
  4. Нажмите на хост инстанса, для которого требуется посмотреть данные мониторинга.
  5. Перейдите на карточку «Мониторинг».

Будет выведено несколько счетчиков и графиков:

  • Счетчики отражают текущее значение метрик.

  • Графики отражают динамику изменения значений метрик в рамках определенного временного периода.

    На линейке вверху можно выбрать интересующий временной период, за который нужно отобразить данные на графиках. Период по умолчанию — 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, например:

    1. Выполнить запросы к системной таблице pg_stat_activity, чтобы собрать статистику по выполняющимся запросам.

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

    2. Воспользоваться командой EXPLAIN для поиска узких мест в таких медленных запросах.

      Рекомендуется обратить внимание на запросы, не использующие индексы (большое количество строк в Seq Scan). Затем можно создать или обновить требуемые индексы.

  • Низкий процент свободных подключений (Free connections) может свидетельствовать как о большом количестве одновременно подключенных клиентов, так и о том, что есть длинные транзакции, которые используют открытое соединение слишком долго.

    В таком случае рекомендуется:

    1. Увеличить значение параметра max_connections.
    2. Оптимизировать запросы так, чтобы не было длинных транзакций.
  • Про устранение проблем, связанных с отставанием реплики, см. документацию Patroni и PostgreSQL.