Назад | Перейти на главную страницу

Высокое значение shmmax в Redhat 6.3

Мы используем Redhat 6.3 с 30 ГБ оперативной памяти для размещения нашего сервера Postgres.

Значение shmmax (по умолчанию) - 68 719 476 736.

На некоторых форумах я читал, что значение shmmax, превышающее ОЗУ, вызывает обширную подкачку, но на форумах Redhat он предупреждает об изменении параметра ядра, который уже настроен на значение, превышающее минимальные требования для среды.

В ServerFault я читал, что это, вероятно, не влияет.

Так есть ли какое-либо влияние наличия shmmax value> RAM на сервере БД, или ядро ​​понимает это и обрабатывает это соответствующим образом?

Спасибо

Нет никаких практических последствий наличия SHMMAX > физическая оперативная память, если только ты действительно начинаешь с помощью что RAM. Просто имейте в виду, что если вы начнете выделять больше общей памяти, чем доступно в вашей системе ОЗУ, ваша система поменяется местами (как и в любой другой раз, когда вы перераспределяете ОЗУ), что, безусловно, убивает производительность.

Обратите внимание, что в последних версиях Postgres (9.3.0 и новее) Postgres использует разделяемую память POSIX и mmap(), что снижает потребность в общей памяти System V.
Если вы обновитесь до Postgres 9.3, настройте SHMMAX / SHMALL параметров, вероятно, можно полностью избежать, если у вас нет необычной среды (например, запуска нескольких десятков кластеров Postgres на одной машине).