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

PG_EXPECTO v.6 : имитация OLTP/OLAP , дополненные чек-листы IO и RAM, статистика vm_dirty и shared_buffers.

Тестирование производительности PostgreSQL часто упирается в вопрос: как система поведёт себя под реальной, смешанной нагрузкой? Методы «на глазок» и разрозненные метрики не дают полной картины. PG_EXPECTO v.6 — инструмент, который целенаправленно создаёт реалистичную имитацию OLTP и OLAP-нагрузки, дополняя её структурированными чек-листами по вводу-выводу и памяти, а также ключевой статистикой по vm_dirty и shared_buffers для глубокой диагностики. Глоссарий терминов | Postgres DBA | Дзен GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL # НАСТРОЙКИ НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ # 6.0 # Максимальная нагрузка finish_load = 20 # Тестовая БД testdb = default # testdb = demo # Тип синтетической нагрузки load_mode = oltp #load_mode = olap # Веса сценариев по умолчанию scenario1 = 0.7 scenario2 = 0.2 scenario3 = 0.1 # Инициализировать тестовую БД init_test_db = on #init_test_db = off # Размер тестовой БД # ~200MB #scale = 20
Оглавление
Вся статистика — в фокусе.
Вся статистика — в фокусе.

Тестирование производительности PostgreSQL часто упирается в вопрос: как система поведёт себя под реальной, смешанной нагрузкой? Методы «на глазок» и разрозненные метрики не дают полной картины. PG_EXPECTO v.6 — инструмент, который целенаправленно создаёт реалистичную имитацию OLTP и OLAP-нагрузки, дополняя её структурированными чек-листами по вводу-выводу и памяти, а также ключевой статистикой по vm_dirty и shared_buffers для глубокой диагностики.

Глоссарий терминов | Postgres DBA | Дзен

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

Начало работ по исследованиям имитации нагрузки OLTP и OLAP с помощью PG_EXPECTO

Версия 6

Конфигурационный файл нагрузочного тестирования

# НАСТРОЙКИ НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ
# 6.0
# Максимальная нагрузка
finish_load = 20
# Тестовая БД
testdb = default
# testdb = demo
# Тип синтетической нагрузки
load_mode = oltp
#load_mode = olap
# Веса сценариев по умолчанию
scenario1 = 0.7
scenario2 = 0.2
scenario3 = 0.1
# Инициализировать тестовую БД
init_test_db = on
#init_test_db = off
# Размер тестовой БД
# ~200MB
#scale = 20
#~10GB
scale = 685

Тип имитируемой нагрузки определяется значением параметра "load_mode":

  • oltp : Нагрузочное тестирование под синтетической нагрузкой, имитирующей OLTP.
  • olap : Нагрузочное тестирование под синтетической нагрузкой, имитирующей OLAP.

Изменение тестовых таблиц для корректной имитации нагрузки OLTP

Тестовые SQL запросы для имитации нагрузки OLTP и OLAP

SELECT - OLTP

SELECT - OLAP

INSERT - OLTP

INSERT - OLAP

UPDATE - OLTP

UPDATE - OLAP

Характерные паттерны операционной скорости и ожиданий СУБД при имитации нагрузки OLTP и OLAP

Корреляция ожиданий СУБД при имитации нагрузки OLTP

-2

Корреляция ожиданий СУБД при имитации нагрузки OLAP

-3

Операционная скорость СУБД при имитации нагрузки OLTP

-4

Операционная скорость СУБД при имитации нагрузки OLAP

-5

Сравнительный чек-лист IO

-6

Сравнительный чек-лист RAM

-7

Отчет по статистике shared_buffers

Исходный файл: postgres.1.1.shared_buffers.report.txt

Время чтения/записи блоков shared_buffers при имитации нагрузки OLTP

-8

Время чтения/записи блоков shared_buffers при имитации нагрузки OLAP

-9

Отчет по статистике vm_dirty*

Исходный файл: linux.5.1.vm_dirty.txt

Объем "грязных страниц кэша ОС" при имитации нагрузки OLTP

-10

Объем "грязных страниц кэша ОС" при имитации нагрузки OLAP

-11

Послесловие

Имитация нагрузки — это лишь первый шаг. Истинная ценность подхода, реализованного в PG_EXPECTO v.6, — в целостной интерпретации результатов. Когда данные с «датчиков» vm_dirty и shared_buffers рассматриваются через призму чек-листов по IO и RAM, вы перестаётся быть пассивным наблюдателем за сбоями. Вы становитесь инженером, который понимает язык своей системы и может проактивно устранять риски, обеспечивая её устойчивость и скорость. Добро пожаловать в эпоху осознанной производительности.