Найти в Дзене
Postgres DBA

✔️️PG_EXPECTO: Аудит производительности инфраструктуры при нагрузочном тестировании СУБД PostgreSQL

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

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

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

kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL
GitHub - pg-expecto/pg_expecto: Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Задача

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

Проведение нагрузочного тестирования

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

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

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

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

-4

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

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

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

-5

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

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

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

-6

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

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

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

-7

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

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

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

-8

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

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

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

-9

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

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

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

  1. Производительность дисковой подсистемы сервера СУБД - недостаточна для синтетических нагрузок по плану нагрузочного тестирования.
  2. Время отклика на запись для дискового устройства используемого для дисковой подсистемы /data - имеет недопустимо высокое значение.
  3. Подсистема IO сервера СУБД - требует оптимизации.