
«Современная производительность — это сложный пазл, где метрики СУБД, дисковые операции, потребление CPU и сетевые задержки тесно переплетены. Традиционное нагрузочное тестирование часто дает лишь часть ответа, заставляя нас собирать данные из десятка разных источников. В этой статье мы рассмотрим, как расширение pg_expecto становится единым источником истины, объединяя метрики инфраструктуры и PostgreSQL в едином контексте. Узнайте, как превратить разрозненные данные в целостную картину и получить точный ответ на вопрос: где на самом деле кроется узкое место вашей системы?»
Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic
https://gitflic.ru/project/kznalp/pg_expecto
Продолжение и анализ результатов нагрузочного тестирования СУБД.
Обратная сторона индекса: когда первичный ключ становится узким местом
Задача
Используя расширения pg_expecto, провести аудит состояния и производительности инфраструктуры сервера СУБД по итогам нагрузочного тестирования СУБД.
Мониторинг операционной системы: pg_expecto выходит за рамки самой СУБД и включает в себя инструменты для сбора и анализа метрик операционной системы с помощью утилит vmstat и iostat. Это позволяет напрямую увязать нагрузку на диск, память и процессор с поведением базы данных.
PG_EXPECTO : Статистический анализ производительности СУБД PostgreSQL
Производительность и ожидания СУБД


Аудит инфраструктуры сервера СУБД в ходе нагрузочного тестирования
1. КОРРЕЛЯЦИЯ ОЖИДАНИЙ СУБД И МЕТРИК vmstat
PG_EXPECTO : Корреляция ожиданий СУБД и показателей vmstat

Предупреждения по результатам отчета:
Корреляция между ожиданиями СУБД типа IO и временем ожидания (wa) / количеством процессов в состоянии сна(b) - признак возможных проблем с дисковой подсистемой сервера СУБД.
Корреляция между ожиданиями СУБД типа IO и объемом прочитанных/записанных блоков (bi/bo) - признак недостаточной производительности дисковой подсистемой сервера СУБД.
Корреляция между ожиданиями СУБД типа и количество времени работы CPU в user режиме (us) - признак нехватки вычислительных ресурсов и возможно неоптимальных SQL запросов.
2.1 КОРРЕЛЯЦИЯ МЕТРИК VMSTAT И IOPSTAT для файловой системы /data
PG_EXPECTO : Статистические показатели iostat для дискового устройства

Предупреждения по результатам отчета:
Корреляция ожидания процессором IO и загруженности диска (wa - util) - признак проблем или недостаточной производительности дисковой подсистемы сервера.
Высокий процент отклика на запись - признак проблем или недостаточной производительности дисковой подсистемы сервера.
Высокое значение очереди - признак недостаточной производительности дисковой подсистемы.
Высокое значение утилизации дискового устройства - признак проблем или недостаточной производительности дисковой подсистемы сервера.
2.2 КОРРЕЛЯЦИЯ МЕТРИК VMSTAT И IOPSTAT для файловой системы /wal
PG_EXPECTO : Статистические показатели iostat для дискового устройства

Предупреждения по результатам отчета:
Корреляция между значениями объема памяти, используемой для буферов и объемом запись на диск (buff - wMB/s) - признак некорректной настройки подсистемы IO сервера.
Корреляция между значениями объема памяти, используемой для кэширования и количеством операций записи на диск (cache - w/s) - признак некорректной настройки подсистемы IO сервера.
Высокое значение утилизации дискового устройства - признак проблем или недостаточной производительности дисковой подсистемы сервера.
3.Чек-лист IO (vmstat)

Предупреждения по результатам отчета:
Высокое значение времени ожидания процессором окончания операций ввода\вывода - признак проблем или недостаточной производительности дисковой подсистемы сервера.
4.Чек-лист CPU (vmstat)

Предупреждения по результатам отчета:
Ресурсов CPU - достаточно. Предупреждения - отсутствуют.
5.Чек-лист RAM (vmstat)

-
Предупреждения по результатам отчета:
Память использована полностью. Есть риск нехватки RAM при повышении нагрузки .
Свопинг - отсутствует.
Итоги аудита инфраструктуры сервера СУБД в ходе нагрузочного тестирования
Производительность дисковой подсистемы сервера СУБД - недостаточна для синтетических нагрузок по плану нагрузочного тестирования.
Время отклика на запись для дискового устройства используемого для файловой системы /data - имеет недопустимо высокое значение.
Подсистема IO сервера СУБД - требует оптимизации.
Дополнительная информация и контакты по теме: