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

Этот документ описывает, как использовать графический интерфейс 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
Этот статус означает, что SQL-заявка завершила выполнение, но соответствующая транзакция еще не зафиксирована или не отменена. Хотя запросы в этом состоянии не потребляют ресурсы ЦП или I/O, они занимают лимиты подключений и параллелизма. Кроме того, все блокировки, удерживаемые запросами внутри транзакции, остаются активными до тех пор, пока транзакция не будет зафиксирована или отменена. В течение этого периода большинство запросов, затрагивающих таблицы, измененные транзакцией, будут заблокированы, что может снизить время отклика сервиса.
Если транзакция остается в состоянии idle in transaction в течение длительного времени (например, более одного часа), рекомендуется немедленно зафиксировать или отменить транзакцию.

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

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

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

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

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

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

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