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

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

Провести комплексный анализ результатов нагрузочного тестирования со стороны метрик производительности СУБД и операционной системы. Mix Нагрузка Классический график изменения операционной скорости в ходе нагрузочного тестирования: procs_r процессы в run queue (готовы к выполнению) Результат: Очередь процессов растет system_cs переключения контекста Результат: Количество переключений контекста растет с ростом операционной скорости . Отмечена высокая положительная корреляция. cpu_sy system time Результат: Высокая доля вычислительных ресурсов тратится на "организационные расходы". Вычислительные ресурсы виртуальной машины недостаточны для тестовой нагрузки. swap_si swap in (из swap в RAM) Отсутствует swap_so swap out (из RAM в swap) Отсутствует memory_free свободная RAM Менее 5% от RAM. Для тестовой нагрузки ресурсов RAM - достаточно. procs_b процессы в uninterruptible sleep (обычно ждут IO) Результат: количество процессов ожидающих IO - не растет. cpu_wa ожидание IO Результат: доля вре
Оглавление
Мал - да удал !
Мал - да удал !

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

Задача

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

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

  • CPU = 2
  • RAM = 2GB
  • Astra Linux 1.7
  • PostgreSQL 15

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

Mix

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

Нагрузка

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

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

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

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

  1. Горизонтальный тренд: производительность не растет
  2. Вертикальный тренд: резкий рост производительности
  3. Горизонтальный тренд: производительность практически не меняется
  4. Нисходящий тренд: производительность снижается с ростом нагрузки

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

Ось 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 (готовы к выполнению)

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

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: Рост значений до 29%

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

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 настроена оптимально.

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)

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

cpu_wa ожидание IO

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

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

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

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

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

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

Продолжение