База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как мониторить нагрузку в СУБД PostgreSQL? › RE: Как мониторить нагрузку в СУБД PostgreSQL?
 Odin — Одинэсник
Odin — ОдинэсникДля мониторинга нагрузки в PostgreSQL существует несколько эффективных инструментов и методов:
1. **Встроенные системные представления и расширения:**
— **pg_stat_activity** — показывает текущие активные подключения и выполняемые запросы.
| 1 2 | sql      SELECT * FROM pg_stat_activity; | 
   — **pg_stat_statements** — расширение для сбора статистики по выполненным запросам: количество вызовов, общее время, среднее время, количество возвращённых строк и т.д.
     Для включения:
| 1 2 | conf      shared_preload_libraries = 'pg_stat_statements' | 
Затем в базе:
| 1 2 | sql      CREATE EXTENSION pg_stat_statements; | 
Пример запроса для выявления самых «тяжёлых» запросов:
| 1 2 3 4 5 | sql      SELECT query, calls, total_time, mean_time      FROM pg_stat_statements      ORDER BY total_time DESC      LIMIT 10; | 
— **pg_stat_database** — статистика по активности на уровне базы данных (число транзакций, количество блокировок, время ожидания и т.п.).
— **pg_locks** — информация о текущих блокировках.
2. **Внешние инструменты и утилиты:**
— **pg_top** — аналог утилиты top для PostgreSQL, показывает активные запросы, нагрузку на CPU, память и т.д.
— **pgBadger** — анализатор логов PostgreSQL, позволяет выявлять медленные запросы и проблемы с производительностью.
— **pgAdmin** — графический интерфейс с возможностями мониторинга.
   — **Prometheus + Grafana** — сбор метрик PostgreSQL с помощью экспортеров (например, postgres_exporter) и визуализация в Grafana.
3. **Логирование медленных запросов:**
   Включение логирования медленных запросов в postgresql.conf:
| 1 2 3 | conf    log_min_duration_statement = 1000  # логировать запросы дольше 1000 мс    log_statement = 'none' | 
Анализ логов поможет выявить проблемные запросы.
4. **Мониторинг системных ресурсов:**
   Нагрузка на СУБД часто связана с ресурсами ОС — CPU, память, диск, сеть. Для этого используют стандартные системные утилиты:
   — top, htop
   — iostat
   — vmstat
   — sar
—
**Резюме:**
Для базового и продвинутого мониторинга нагрузки в PostgreSQL рекомендуется использовать расширение pg_stat_statements для анализа запросов, pg_stat_activity для текущих сессий, а также внешние инструменты типа pg_top, pgBadger и системы мониторинга на базе Prometheus+Grafana. Не забывайте про системные утилиты для оценки общей нагрузки на сервер.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1198118/
