Провести качественный и количественный анализ влияния увеличения параметра shared_buffers .
Провести качественный и количественный анализ влияния увеличения параметра shared_buffers .
...Читать далее
Только сравнив показатели в гонке , можно делать выводы.
Постановка задачи
Провести качественный и количественный анализ влияния увеличения параметра shared_buffers .
Сравнительные эксперименты
- Эксперимент-1 : shared_buffers = 25% RAM
- Эксперимент-2 : shared_buffers = 40% RAM
- Эксперимент-3 : shared_buffers = 50% RAM
Конфигурация виртуальной машины
- CPU = 200
- RAM = 1TB
- Postgres Pro (enterprise certified) 15.10.1
Сценарий нагрузочного тестирования
- Минимальная нагрузка : 5 сессий
- Максимальная нагрузка : 181 сессия
- Сценарий : "Mix" ("Select only" + "Select + Update" + "Insert only" + "CPU Load").
Результаты экспериментов
Операционная скорость
Ось X - точка наблюдения. Ось Y - операционная скорость.
Разница в скорости : shared_buffers=25% vs shared_buffers = 40%
- Минимальная разница : -2%
- Максимальная разница : 22%
- Средняя разница : 6%
Ось X - точка наблюдения. Ось Y - относительная разница скорости
Разница в скорости : shared_buffers=40% vs shared_buffers = 50%
- Минимальная разница : -12%
- Максимальная разница : -0.08%
- Средняя разница : -7%
Ось X - точка наблюдения. Ось Y - относительная разница скорости
Разница в скорости : shared_buffers=25% vs shared_buffers = 50%
- Минимальная разница : -10%
- Максимальная разница : 9%
- Средняя разница : -1%
Влияние shared_buffers на операционную скорость:
- Наибольший прирост скорости по сравнению со значением по умолчанию(25%RAM) до 22%, достигнут при значении shared_buffers = 40% RAM
- Увеличение размера shared_buffers свыше 40% не дало прироста скорости СУБД.
Ожидания СУБД типа IO
Ось X - точка наблюдения. Ось Y - ожидания типа IO.
Разница в количестве ожиданий IO : shared_buffers=25% vs shared_buffers = 40%
- Минимальная разница : -10%
- Максимальная разница : 5%
- Средняя разница : 0.1%
Разница в количестве ожиданий IO : shared_buffers=40% vs shared_buffers = 50%
- Минимальная разница : -10%
- Максимальная разница : 13%
- Средняя разница : 4%
Разница в количестве ожиданий IO : shared_buffers=25% vs shared_buffers = 50%
- Минимальная разница : -15%
- Максимальная разница : 11%
- Средняя разница : 4%
Влияние shared_buffers на количество ожиданий IO:
- Среднее количество ожиданий типа IO, при значении shared_buffers = 40% , по сравнению со значением по умолчанию(25%RAM) практически не изменилось
- Увеличение размера shared_buffers свыше 40% ведет к снижению ожиданий типа IO.
Ожидания СУБД типа LWLock
Ось X - точка наблюдения. Ось Y - ожидания типа LWLock.
Разница в количестве ожиданий LWLock : shared_buffers=25% vs shared_buffers = 40%
- Минимальная разница : -80%
- Максимальная разница : 36%
- Средняя разница : -21%
Разница в количестве ожиданий LWLock : shared_buffers=40% vs shared_buffers = 50%
- Минимальная разница : -25%
- Максимальная разница : 100%
- Средняя разница : 14%
Разница в количестве ожиданий LWLock : shared_buffers=25% vs shared_buffers = 50%
- Минимальная разница : -80%
- Максимальная разница : 76%
- Средняя разница : -10%
Влияние shared_buffers на количество ожиданий LWLock:
- Среднее количество ожиданий типа LWLock , при значении shared_buffers = 40% , по сравнению со значением по умолчанию(25%RAM) уменьшилось до 21%.
- Увеличение размера shared_buffers свыше 40% ведет к снижению ожиданий типа LWLock .
Итог
- Для данной конфигурации ВМ при данном сценарии нагрузки наиболее оптимальное значение параметра shared_buffers = 40% RAM (400GB).