Мониторинг запросов

Документ описывает, как использовать графический интерфейс YMatrix для анализа и управления активными и заблокированными запросами в базе данных.

Во время выполнения бизнес-операций YMatrix часто обрабатывает большое количество запросов. Для упрощения ежедневного мониторинга состояния выполнения запросов функция мониторинга запросов предоставляет информацию в реальном времени о активных и заблокированных запросах. Это помогает управлять и анализировать медленные запросы и сценарии блокировок, повышая эффективность работы базы данных.

Медленный запрос — это SQL-запрос, время выполнения которого превышает заданный порог. Медленные запросы являются основной причиной деградации производительности базы данных и представляют собой ключевые цели для оптимизации доступа к данным. Страница мониторинга запросов отображает текущие медленные запросы, соответствующие заданным условиям, помогая управлять и анализировать их для повышения эффективности базы данных.

1 Предварительные требования

Сначала войдите в графический интерфейс. Введите в браузере IP-адрес (по умолчанию — IP-адрес Master) и номер порта машины, на которой запущен MatrixGate:

http://<IP>:8240

2 Мониторинг запросов

2.1 Активные сессии

2.1.1 Список активных сессий

После входа в систему нажмите Мониторинг запросов в левой панели навигации, чтобы перейти на страницу Активные сессии.

  1. Данные списка сессий извлекаются из pg_stat_activity. По умолчанию результаты сортируются по убыванию времени query_start. Список автоматически обновляется каждые 10 секунд. Для детального анализа конкретной записи вы можете приостановить автоматическое обновление, чтобы предотвратить исключение просматриваемой сессии из списка. Чтобы снизить нагрузку на систему, вызванную частыми обновлениями, автоматическое обновление приостанавливается при выходе со страницы мониторинга запросов.
  2. По умолчанию список отображает запросы в состояниях active + idle in transaction. Вы можете щелкнуть любое состояние в столбце state, чтобы отфильтровать список. Каждый блок состояния показывает количество 状态+ 处于该状态的会话数量.

Пояснение к idle in transaction
Это состояние означает, что запрос завершил выполнение, но его транзакция еще не зафиксирована или не отменена. Хотя запросы в этом состоянии не потребляют ресурсы CPU или I/O, они занимают ресурсы подключений и параллелизма. Кроме того, все блокировки, удерживаемые запросами внутри транзакции, остаются активными до момента фиксации или отмены транзакции. В этот период большинство запросов, затрагивающих таблицы, измененные транзакцией, будут заблокированы, что снижает время отклика сервиса.
Если транзакция остается в состоянии idle in transaction в течение длительного времени (например, более одного часа), рекомендуется немедленно зафиксировать или отменить её.

2.1.2 Детали активной сессии

Щелкните кнопку Просмотр справа от целевой сессии, чтобы открыть страницу с деталями запроса. На этой странице отображается вся информация о запросе из таблицы pg_stat_activity, а также предоставляется возможность завершить сессию.

2.2 Заблокированные сессии

2.2.1 Список заблокированных сессий

Нажмите Заблокированные сессии, чтобы перейти к списку заблокированных сессий. Эта страница отображает текущие отношения блокировок в базе данных, отсортированные по убыванию продолжительности блокировки — наиболее длительные блокировки отображаются вверху. Список автоматически обновляется каждые 10 секунд. Для детального анализа конкретного отношения блокировки вы можете приостановить автоматическое обновление, чтобы не потерять текущий вид. Автоматическое обновление приостанавливается при выходе со страницы мониторинга запросов для снижения нагрузки на систему.

2.2.2 Детали заблокированной сессии

Щелкните кнопку Просмотр справа от целевого отношения блокировки, чтобы открыть страницу с деталями запроса, где доступна возможность завершить сессию.