Производительность — это не только про индексы и запросы. Это про всю инфраструктуру.
Производительность — это не только про индексы и запросы. Это про всю инфраструктуру.

«Современная производительность — это сложный пазл, где метрики СУБД, дисковые операции, потребление CPU и сетевые задержки тесно переплетены. Традиционное нагрузочное тестирование часто дает лишь часть ответа, заставляя нас собирать данные из десятка разных источников. В этой статье мы рассмотрим, как расширение pg_expecto становится единым источником истины, объединяя метрики инфраструктуры и PostgreSQL в едином контексте. Узнайте, как превратить разрозненные данные в целостную картину и получить точный ответ на вопрос: где на самом деле кроется узкое место вашей системы?»

Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic

https://gitflic.ru/project/kznalp/pg_expecto

Продолжение и анализ результатов нагрузочного тестирования СУБД.

Обратная сторона индекса: когда первичный ключ становится узким местом

Задача

Используя расширения pg_expecto, провести аудит состояния и производительности инфраструктуры сервера СУБД по итогам нагрузочного тестирования СУБД.

Мониторинг операционной системы: pg_expecto выходит за рамки самой СУБД и включает в себя инструменты для сбора и анализа метрик операционной системы с помощью утилит vmstat и iostat. Это позволяет напрямую увязать нагрузку на диск, память и процессор с поведением базы данных.

PG_EXPECTO : Статистический анализ производительности СУБД PostgreSQL

Производительность и ожидания СУБД

PG_EXPECTO : Построение графиков производительности и ожиданий по результатам нагрузочного тестирования СУБД

График изменения операционной скорости СУБД в ходе нагрузочного тестирования. Красный график - линия регрессии.
График изменения операционной скорости СУБД в ходе нагрузочного тестирования. Красный график - линия регрессии.
График изменения ожиданий СУБД в ходе нагрузочного тестирования. Красный график - линия регрессии.
График изменения ожиданий СУБД в ходе нагрузочного тестирования. Красный график - линия регрессии.

Аудит инфраструктуры сервера СУБД в ходе нагрузочного тестирования

1. КОРРЕЛЯЦИЯ ОЖИДАНИЙ СУБД И МЕТРИК vmstat

PG_EXPECTO : Корреляция ожиданий СУБД и показателей vmstat

Предупреждения по результатам отчета:

  1. Корреляция между ожиданиями СУБД типа IO и временем ожидания (wa) / количеством процессов в состоянии сна(b) - признак возможных проблем с дисковой подсистемой сервера СУБД.

  2. Корреляция между ожиданиями СУБД типа IO и объемом прочитанных/записанных блоков (bi/bo) - признак недостаточной производительности дисковой подсистемой сервера СУБД.

  3. Корреляция между ожиданиями СУБД типа и количество времени работы CPU в user режиме (us) - признак нехватки вычислительных ресурсов и возможно неоптимальных SQL запросов.

2.1 КОРРЕЛЯЦИЯ МЕТРИК VMSTAT И IOPSTAT для файловой системы /data

PG_EXPECTO : Статистические показатели iostat для дискового устройства

Предупреждения по результатам отчета:

  1. Корреляция ожидания процессором IO и загруженности диска (wa - util) - признак проблем или недостаточной производительности дисковой подсистемы сервера.

  2. Высокий процент отклика на запись - признак проблем или недостаточной производительности дисковой подсистемы сервера.

  3. Высокое значение очереди - признак недостаточной производительности дисковой подсистемы.

  4. Высокое значение утилизации дискового устройства - признак проблем или недостаточной производительности дисковой подсистемы сервера.

2.2 КОРРЕЛЯЦИЯ МЕТРИК VMSTAT И IOPSTAT для файловой системы /wal

PG_EXPECTO : Статистические показатели iostat для дискового устройства

Предупреждения по результатам отчета:

  1. Корреляция между значениями объема памяти, используемой для буферов и объемом запись на диск (buff - wMB/s) - признак некорректной настройки подсистемы IO сервера.

  2. Корреляция между значениями объема памяти, используемой для кэширования и количеством операций записи на диск (cache - w/s) - признак некорректной настройки подсистемы IO сервера.

  3. Высокое значение утилизации дискового устройства - признак проблем или недостаточной производительности дисковой подсистемы сервера.

3.Чек-лист IO (vmstat)

PG_EXPECTO : Чек-лист IO

Предупреждения по результатам отчета:

  1. Высокое значение времени ожидания процессором окончания операций ввода\вывода - признак проблем или недостаточной производительности дисковой подсистемы сервера.

4.Чек-лист CPU (vmstat)

PG_EXPECTO : Чек-лист CPU

Предупреждения по результатам отчета:

  1. Ресурсов CPU - достаточно. Предупреждения - отсутствуют.

5.Чек-лист RAM (vmstat)

PG_EXPECTO : Чек-лист RAM

  1. Предупреждения по результатам отчета:

    1. Память использована полностью. Есть риск нехватки RAM при повышении нагрузки .

    2. Свопинг - отсутствует.

    Итоги аудита инфраструктуры сервера СУБД в ходе нагрузочного тестирования

    1. Производительность дисковой подсистемы сервера СУБД - недостаточна для синтетических нагрузок по плану нагрузочного тестирования.

    2. Время отклика на запись для дискового устройства используемого для файловой системы /data - имеет недопустимо высокое значение.

    3. Подсистема IO сервера СУБД - требует оптимизации.

Дополнительная информация и контакты по теме:

https://dzen.ru/kznalp

kznalp@yandex.ru

Комментарии (0)