Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
До версии 9.3 SHMMAX был наиболее важным параметром ядра.
PostgreSQL поддерживает большие страницы только в Linux.
Размер большой страницы может быть установлен во время загрузки.
Теперь задайте параметр huge_pages «on»
Тот случай когда комментарий на порядок полезней статьи.
простой insert одной строки работает больше секунды. Потому что диск стал резко перегружен и не отвечает на fsync записи в WAL
Дефолтно-то синхронный коммит включен
на on — при неудаче с huge pages выключится с ошибкой.
Если накатываете реплику, делая потоковую репликацию, сделайте шаред на реплики очень мелким вначале, это ускорит поднятие в разы…
shared memory в postgresql это не только shared_buffers. shared_buffers — это только буфер блоков, даже без учёта управляющих этих блоком структур. Суммарно объём shared memory выделяется где-то на 3% больше чем заявлен shared_buffers.
2мб страницы vm.nr_hugepages под linux спокойно меняются на лету. Может понадобиться сбросить файловый кэш, изменение числа страниц не вытесняет память кэша.
Я больше скажу, мне min_free_kbytes даже на raspberrypi с 512мб памяти крутить пришлось =) иначе под нагрузкой сеть временно отваливалась с руганью в dmesg что нет памяти под сетевой буфер. На больших машинках да, где-то гигабайт выделяем всегда под эту настройку.
А вот по свапу не знаю, свап обязательно делаем, swapinnes ставим в 1, проблем отсюда не припоминаю.
Значение варьируется от 0 до 100. Он определяет, сколько памяти будет выгружено или выгружено. Ноль означает отключение обмена, а 100 означает агрессивный обмен.
Настройка параметров ядра Linux для оптимизации PostgreSQL