Тестирование производительности PostgreSQL часто упирается в вопрос: как система поведёт себя под реальной, смешанной нагрузкой? Методы «на глазок» и разрозненные метрики не дают полной картины. PG_EXPECTO v.6 — инструмент, который целенаправленно создаёт реалистичную имитацию OLTP и OLAP-нагрузки, дополняя её структурированными чек-листами по вводу-выводу и памяти, а также ключевой статистикой по vm_dirty и shared_buffers для глубокой диагностики.
Глоссарий терминов | Postgres DBA | Дзен
Начало работ по исследованиям имитации нагрузки 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
Корреляция ожиданий СУБД при имитации нагрузки OLAP
Операционная скорость СУБД при имитации нагрузки OLTP
Операционная скорость СУБД при имитации нагрузки OLAP
Сравнительный чек-лист IO
Сравнительный чек-лист RAM
Отчет по статистике shared_buffers
Исходный файл: postgres.1.1.shared_buffers.report.txt
Время чтения/записи блоков shared_buffers при имитации нагрузки OLTP
Время чтения/записи блоков shared_buffers при имитации нагрузки OLAP
Отчет по статистике vm_dirty*
Исходный файл: linux.5.1.vm_dirty.txt
Объем "грязных страниц кэша ОС" при имитации нагрузки OLTP
Объем "грязных страниц кэша ОС" при имитации нагрузки OLAP
Послесловие
Имитация нагрузки — это лишь первый шаг. Истинная ценность подхода, реализованного в PG_EXPECTO v.6, — в целостной интерпретации результатов. Когда данные с «датчиков» vm_dirty и shared_buffers рассматриваются через призму чек-листов по IO и RAM, вы перестаётся быть пассивным наблюдателем за сбоями. Вы становитесь инженером, который понимает язык своей системы и может проактивно устранять риски, обеспечивая её устойчивость и скорость. Добро пожаловать в эпоху осознанной производительности.