«Современная производительность — это сложный пазл, где метрики СУБД, дисковые операции, потребление CPU и сетевые задержки тесно переплетены. Традиционное нагрузочное тестирование часто дает лишь часть ответа, заставляя нас собирать данные из десятка разных источников. В этой статье мы рассмотрим, как расширение pg_expecto становится единым источником истины, объединяя метрики инфраструктуры и PostgreSQL в едином контексте. Узнайте, как превратить разрозненные данные в целостную картину и получить точный ответ на вопрос: где на самом деле кроется узкое место вашей системы?»
ℹ️Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозиториях GitFlic и GitHub
Задача
Провести аудит состояния и производительности инфраструктуры сервера СУБД по итогам нагрузочного тестирования СУБД.
Проведение нагрузочного тестирования
Производительность и ожидания СУБД
Аудит инфраструктуры сервера СУБД в ходе нагрузочного тестирования
1. КОРРЕЛЯЦИЯ ОЖИДАНИЙ СУБД И МЕТРИК vmstat
Предупреждения по результатам отчета:
- Корреляция между ожиданиями СУБД типа IO и временем ожидания (wa) / количеством процессов в состоянии сна(b) - признак возможных проблем с дисковой подсистемой сервера СУБД.
- Корреляция между ожиданиями СУБД типа IO и объемом прочитанных/записанных блоков (bi/bo) - признак недостаточной производительности дисковой подсистемой сервера СУБД.
- Корреляция между ожиданиями СУБД типа и количество времени работы CPU в user режиме (us) - признак нехватки вычислительных ресурсов и возможно неоптимальных SQL запросов.
2.1 КОРРЕЛЯЦИЯ МЕТРИК VMSTAT И IOPSTAT для файловой системы /data
Предупреждения по результатам отчета:
- Корреляция ожидания процессором IO и загруженности диска (wa - util) - признак проблем или недостаточной производительности дисковой подсистемы сервера.
- Высокий процент отклика на запись - признак проблем или недостаточной производительности дисковой подсистемы сервера.
- Высокое значение очереди - признак недостаточной производительности дисковой подсистемы.
- Высокое значение утилизации дискового устройства - признак проблем или недостаточной производительности дисковой подсистемы сервера.
2.2 КОРРЕЛЯЦИЯ МЕТРИК VMSTAT И IOPSTAT для файловой системы /wal
Предупреждения по результатам отчета:
- Корреляция между значениями объема памяти, используемой для буферов и объемом запись на диск (buff - wMB/s) - признак некорректной настройки подсистемы IO сервера.
- Корреляция между значениями объема памяти, используемой для кэширования и количеством операций записи на диск (cache - w/s) - признак некорректной настройки подсистемы IO сервера.
- Высокое значение утилизации дискового устройства - признак проблем или недостаточной производительности дисковой подсистемы сервера.
3.Чек-лист IO (vmstat)
Предупреждения по результатам отчета:
- Высокое значение времени ожидания процессором окончания операций ввода\вывода - признак проблем или недостаточной производительности дисковой подсистемы сервера.
4.Чек-лист CPU (vmstat)
Предупреждения по результатам отчета:
- Ресурсов CPU - достаточно. Предупреждения - отсутствуют.
5.Чек-лист RAM (vmstat)
Предупреждения по результатам отчета:
- Память использована полностью. Есть риск нехватки RAM при повышении нагрузки .
- Свопинг - отсутствует.
Итоги аудита инфраструктуры сервера СУБД в ходе нагрузочного тестирования
- Производительность дисковой подсистемы сервера СУБД - недостаточна для синтетических нагрузок по плану нагрузочного тестирования.
- Время отклика на запись для дискового устройства используемого для дисковой подсистемы /data - имеет недопустимо высокое значение.
- Подсистема IO сервера СУБД - требует оптимизации.