Мониторинг PostgreSQL

Пользователи Облачных баз данных Selectel могут получать информацию о нагрузке на серверы кластера и о работе с базами данных. Все данные наглядно представлены в виде графиков. Графики находятся на странице кластера на вкладке Мониторинг.

Метрики серверов кластера

Использование vCPU

График показывает, на сколько процентов загружены ядра серверов кластера.

Load average

На графике показано среднее значение загрузки системы за период времени. Load average отражает то, как много процессов обрабатываются ядрами кластера. На графике показатель представлен в виде трех значений – за 1 минуту, за 5 минут и за 15.

Использование памяти

График показывает занятую память без учета кэша и буферов ОС.

Использование диска

На графике показано занятое место на диске.

Метрики баз данных кластера

Подключения

Каждая линия на графике показывает количество подключений к конкретной базе данных кластера. Также на графике показано суммарное количество подключений ко всем базам кластера.

Время выполнения самого долгого запроса

На графике отображается время выполнения самого долгого запроса за период.

Транзакции

График показывает количество транзакций в секунду для каждой базы данных кластера.

Операции со строками

На графике отображается количество операций над всеми базами данных в секунду. На графике представлены следующие типы операций:

  • tup_returned – количество строк, возвращенное запросами в этой базе данных в секунду;
  • tup_fetched – количество строк, извлеченное запросами в этой базе данных в секунду;
  • tup_inserted – количество строк, вставленное запросами в этой базе данных в секунду;
  • tup_updated – количество строк, измененное запросами в этой базе данных в секунду;
  • tup_deleted – количество строк, удалённое запросами в этой базе данных в секунду.

Попадание в кэш

График показывает, какой процент данных в запросе был прочитан из кэша (отношение blks_hit к сумме blks_hit и blks_read).

Locks

На графике отображается количество locks по каждой базе данных кластера.

Deadlocks

График показывает количество взаимных блокировок, зафиксированное в каждой базе данных.

Уведомления о заполненности диска

Если кластер перешел в статус DISK_FULL, то очистить диск можно с помощью открытия транзакции с transaction_read_only = no и удаления ненужных данных.

Обратите внимание! Запрос вида DELETE FROM table WHERE ... на больших таблицах может создавать выборки больших размеров и располагать их на диске. В этом случае оставшееся свободное место на диске может полностью закончиться, что приведет к проблемам с PostgreSQL и необходимости восстанавливать его работу вручную. Мы не рекомендуем использовать DELETE FROM для очистки диска.

Первый способ очистить диск — использовать DROP TABLE:

BEGIN;
SET transaction_read_only = no;
DROP TABLE some_unused_table;
COMMIT;

Второй способ — с помощью TRUNCATE TABLE:

BEGIN;
SET transaction_read_only = no;
TRUNCATE TABLE some_unused_table;
COMMIT;

TRUNCATE TABLE работает быстрее первого способа, но удаляет содержимое таблицы, при этом структура сохраняется. DROP TABLE удаляет структуру (данные, привилегии, индексы, ограничения (constraints), триггеры).

TRUNCATE TABLE стоит использовать при удалении всех строк таблицы с сохранением структуры таблицы — это быстрее, чем DROP TABLE. DROP TABLE стоит использовать при полном удалении таблицы, включая данные и структуру — это быстрее, чем DELETE.

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