2

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ

Взято с основного технического канала Postgres DBA (возможны правки в исходной статье).

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Мал - да удал !

Предыдущие работы по теме

VMSTAT : признаки конкуренции за ресурсы CPU

VMSTAT : признаки конкуренции за ресурсы RAM

VMSTAT : Обнаружение посторонней нагрузки на дисковую подсистему виртуальной машины

PG_HAZEL : анализ СУБД и инфраструктуры по результатам нагрузочного тестирования (малая ВМ)

Задача

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

Виртуальная машина 06

  • CPU = 2

  • RAM = 2GB

  • Astra Linux 1.7

  • PostgreSQL 15

Сценарий тестирования и нагрузка на СУБД

Mix

  1. Select only : 50% нагрузки

  2. Select + Update : 30% нагрузки

  3. Insert only : 15% нагрузки

Нагрузка

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - тестовая итерация. Ось Y - количество сессий pgbench

Операционная скорость

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - операционная скорость

Классический график изменения операционной скорости в ходе нагрузочного тестирования:

  1. Горизонтальный тренд: производительность не растет

  2. Вертикальный тренд: резкий рост производительности

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

  4. Нисходящий тренд: производительность снижается с ростом нагрузки

Зависимость операционной скорости от нагрузки на СУБД

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - количество сессий pgbench . Ось Y - операционная скорость

Ожидания СУБД

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - ожидания СУБД

Зависимость ожиданий от нагрузки на СУБД

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - количество сессий pgbench . Ось Y - ожидания СУБД

Конкуренция за ресурсы CPU

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Абсолютные значения показателей vmstat

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Корреляция показателей vmstat

procs_r процессы в run queue (готовы к выполнению)

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - procs_r процессы в run queue (готовы к выполнению)

Результат: Очередь процессов растет

system_cs переключения контекста

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - system_cs переключения контекста

Результат: высокая положительная корреляция с операционной скоростью

cpu_sy system time

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - cpu_sy system time

Результат: Высокая корреляция с операционной скоростью.

Результат анализа конкуренции за ресурсы CPU:

  • procs_r процессы в run queue (готовы к выполнению) : постоянно превышает количество ядер CPU

  • cpu_sy system time: Рост значений до 29%

Вычислительные ресурсы виртуальной машины недостаточны для тестовой нагрузки.

Конкуренция за RAM

swap_si swap in (из swap в RAM)

Отсутствует

swap_so swap out (из RAM в swap)

Отсутствует

memory_free свободная RAM

Менее 5% от RAM.

Результат анализа конкуренции за ресурсы RAM:

Для тестовой нагрузки ресурсов RAM - достаточно.

Конкуренция за ресурсы IO

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Абсолютные показатели vmstat

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Корреляция показателей vmstat

procs_b процессы в uninterruptible sleep (обычно ждут IO)

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - procs_b процессы в uninterruptible sleep (обычно ждут IO)

Результат: количество процессов ожидающих IO - не растет.

cpu_wa ожидание IO

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - cpu_wa ожидание IO

Результат: доля времени CPU в ожидания IO снижается.

Результат анализа конкуренции за ресурсы IO:

Подсистема IO настроена оптимально.

Влияние гипервизора на CPU и IO

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Абсолютные показатели vmstat

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Корреляция показателей vmstat

Влияние на CPU

Отсутствует

Влияние на IO

procs_b процессы в uninterruptible sleep (обычно ждут IO)

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - procs_b процессы в uninterruptible sleep (обычно ждут IO)

Результат: procs_b процессы в uninterruptible sleep (обычно ждут IO) - не растет

cpu_wa ожидание IO

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ Субд, Postgresql, Тестирование, Длиннопост

Ось X - точка наблюдения . Ось Y - cpu_wa ожидание IO

Результат: cpu_wa ожидание IO - не растет

Влияние на IO - отсутствует.

  1. Итоговый результат анализа инфраструктуры ВM-06 по итогам нагрузочного тестирования СУБД

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

  3. Для тестовой нагрузки ресурсов RAM - достаточно.

  4. Подсистема IO настроена оптимально.

  5. Влияние гипервизора на CPU - отсутствует.

  6. Продолжение

    PG_HAZEL : Анализ результатов нагрузочного тестирования для большой ВМ

Postgres DBA

91 пост17 подписчиков

Правила сообщества

Пока действуют стандартные правила Пикабу.