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

PG_EXPECTO(1/3) : влияние vm.vfs_cache_pressure на производительность PostgreSQL при нагрузке, имитирующей OLAP.

Существует дефицит специализированных исследований по тонкой настройке ОС для СУБД. Настоящая работа заполняет этот пробел, предлагая экспериментальный анализ влияния параметра vm.vfs_cache_pressure в Linux на производительность PostgreSQL под синтетической OLAP-нагрузкой. Глоссарий терминов | Postgres DBA | Дзен GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL Отсутствие специализированных исследований: Поиск в научных базах данных (Google Scholar, IEEE Xplore) и технических блогах по запросам "vfs_cache_pressure PostgreSQL performance", "Linux kernel tuning for database workload" не выявил работ, фокусирующихся на экспериментальном изучении данного конкретного взаимодействия. Основная масса материалов предлагает общие советы или рассматривает настройку памяти PostgreSQL в отрыве от тонких параметров ОС. Оценить влияние изменения параметра vm.vfs_cache_pressure на производительность СУБД и инфраструктуры при синтет
Оглавление

Существует дефицит специализированных исследований по тонкой настройке ОС для СУБД. Настоящая работа заполняет этот пробел, предлагая экспериментальный анализ влияния параметра vm.vfs_cache_pressure в Linux на производительность PostgreSQL под синтетической OLAP-нагрузкой.

PostgreSQL и ядро Linux: поиск оптимального взаимодействия.
PostgreSQL и ядро Linux: поиск оптимального взаимодействия.

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

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

Предпосылка к исследованию

Отсутствие специализированных исследований: Поиск в научных базах данных (Google Scholar, IEEE Xplore) и технических блогах по запросам "vfs_cache_pressure PostgreSQL performance", "Linux kernel tuning for database workload" не выявил работ, фокусирующихся на экспериментальном изучении данного конкретного взаимодействия. Основная масса материалов предлагает общие советы или рассматривает настройку памяти PostgreSQL в отрыве от тонких параметров ОС.

Задача

Оценить влияние изменения параметра vm.vfs_cache_pressure на производительность СУБД и инфраструктуры при синтетической нагрузке, имитирующей OLAP.

Часть 2 - Анализ паттернов производительности инфраструктуры

Часть 3 - Анализ производительности подсистемы IO для файловой системы /data

Часть 1 - Общая постановка исследования и результаты производительности СУБД и инфраструктуры.

Тестовые сценарии

Веса сценариев

scenario1 = 0.7

scenario2 = 0.2

scenario3 = 0.1

Тестовая среда, инструменты и конфигурация СУБД:

Параметры инфраструктуры

vm.dirty_expire_centisecs=3000

vm.dirty_ratio=30

vm.dirty_background_ratio=10

vm.swappiness=10

read_ahead_kb=4096

Параметры СУБД

shared_buffers = '4GB'
effective_cache_size = '6GB'
work_mem = '32MB'

Нагрузка на СУБД в ходе экспериментов

-2

Отношение прочитанных блоков shared_buffers к измененным блокам shared_buffers (OLAP):

  • vm.vfs_cache_pressure = 100 : 177.98
  • vm.vfs_cache_pressure = 50 : 184.26
  • vm.vfs_cache_pressure = 150 : 172.22

Корреляционный анализ ожиданий СУБД

-3

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

-4

Медианные значения операционной скорости:

  • vm.vfs_cache_pressure = 100 : 15 154 (baseline)
  • vm.vfs_cache_pressure = 50 : 16 185 (-11.27%)
  • vm.vfs_cache_pressure = 150 : 15 095 (+8.65%)

Ожидания типа IO

-5

Медианные значения ожиданий типа IO:

  • vm.vfs_cache_pressure = 100 : 16 716 (baseline)
  • vm.vfs_cache_pressure = 50 : 19 411 (+16,12%)
  • vm.vfs_cache_pressure = 150 : 16 762 (+0,27%)

Ожидания типа LWLock

-6

Медианные значения ожиданий типа LWLock:

  • vm.vfs_cache_pressure = 100 : 178(baseline)
  • vm.vfs_cache_pressure = 50 : 113 (-36,52%)
  • vm.vfs_cache_pressure = 150 : 167 (-6,46%)

Производительность подсистемы IO (IOPS) файловой системы /data

-7

Медианные значения IOPS:

  • vm.vfs_cache_pressure = 100 : 3 502(baseline)
  • vm.vfs_cache_pressure = 50 : 3 479(-0,66%)
  • vm.vfs_cache_pressure = 150 : 3 582 (+2,28%)

Пропускная способность подсистемы IO (MB/s) файловой системы /data

-8

Медианные значения MB/s:

  • vm.vfs_cache_pressure = 100 : 125(baseline)
  • vm.vfs_cache_pressure = 50 : 103(-17,60%)
  • vm.vfs_cache_pressure = 150 : 135 (+8,00%)

Итог

Таким образом, исследование демонстрирует сложный и нелинейный характер влияния низкоуровневых параметров ОС на производительность СУБД высокого уровня. Полученные данные подчеркивают важность комплексного подхода к тюнингу, учитывающего взаимодействие всех компонентов стека: от ядра Linux до внутренних структур PostgreSQL.