Высокое значение shmmax в Redhat 6.3
Мы используем Redhat 6.3 с 30G RAM для размещения нашего сервера Postgres.
Значение по умолчанию (shmmax) составляет 68 719 476 736
На некоторых форумах я читал, что если значение shmmax больше, чем у ОЗУ, это приводит к интенсивному разбиению по страницам, но на форумах Redhat это предостерегает от изменения параметра ядра, который уже настроен на значение, превышающее минимальные требования для среды.
В ServerFault я читал, что это, вероятно, не влияет.
Так есть ли какое-либо влияние наличия значения shmmax> RAM на сервере БД, или ядро это понимает и обрабатывает соответствующим образом?
Спасибо
1 ответ
Там нет никаких практических последствий наличия SHMMAX
> физическая ОЗУ, если только вы не начнете использовать эту ОЗУ. Просто имейте в виду, что если вы начнете выделять больше разделяемой памяти, чем у вашей системы будет доступно ОЗУ, ваша система поменяется (как и в любой другой раз, когда вы перераспределяете ОЗУ), что, безусловно, снижает производительность.
Обратите внимание, что в последних версиях Postgres ( 9.3.0 и новее) Postgres использует разделяемую память POSIX & mmap()
, что снижает спрос на System V Shared Memory.
При обновлении до Postgres 9.3 настройка SHMMAX
/ SHMALL
параметров, вероятно, можно полностью избежать, если у вас нет необычной среды (например, запуск нескольких десятков кластеров Postgres на одной машине).