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

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

Оглавление
Только правильно настроенный большой механизм даст эффект.
Только правильно настроенный большой механизм даст эффект.

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

Задача

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

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

  • CPU = 8
  • RAM = 8GB
  • Red OS Murom 7.3
  • PostgreSQL 17

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

Mix

  1. Select only : 50% нагрузки
  2. Select + Update : 30% нагрузки
  3. Insert only : 15% нагрузки

Нагрузка

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

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

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

Восходящий тренд производительности СУБД - отсутствует

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

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

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

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

Горизонтальный тренд и экспоненциальный рост ожиданий от нагрузки.

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

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

1. Ресурсы CPU

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

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

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

Результат: Очередь процессов растет, но количество не превышает число ядер CPU.

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

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

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

cpu_sy system time

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

Результат: Незначительный рост.

Анализ ресурсов CPU

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

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

2. Ресурсы RAM

swap_si swap in (из swap в RAM)

Отсутствует

swap_so swap out (из RAM в swap)

Отсутствует

memory_free свободная RAM

Менее 5% от RAM.

Анализ ресурсов RAM

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

3. Ресурсы IO

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

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

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

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

cpu_wa ожидание IO

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

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

Анализ ресурсов IO

Подсистема IO настроена неоптимально, имеется существенное влияние IO на производительность.

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

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

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

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

Влияние на IO

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

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

cpu_wa ожидание IO

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

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

io_bi блоки, считанные с устройств

Ось X - точка наблюдения . Ось Y - io_bi блоки, считанные с устройств
Ось X - точка наблюдения . Ось Y - io_bi блоки, считанные с устройств

io_bo записанные на устройства

Ось X - точка наблюдения . Ось Y - io_bo записанные на устройства
Ось X - точка наблюдения . Ось Y - io_bo записанные на устройства

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

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

Результаты анализа инфраструктуры ВM-12 для тестовой нагрузки

  1. 👍Ресурсы CPU - достаточны.
  2. 👍Ресурсы RAM - достаточны.
  3. ⚠️Подсистема IO настроена неоптимально.
  4. 👍Влияние гипервизора на CPU - отсутствует.
  5. ⚠️Влияние гипервизора на IO - возможно.