Откуда берется значение максимальной заблокированной памяти по умолчанию? - PullRequest
0 голосов
/ 23 сентября 2010

Итак, в одной системе у меня есть довольно широко открытые значения:

$ ulimit -a | grep mem
max locked memory       (kbytes, -l) 40000
max memory size         (kbytes, -m) unlimited
virtual memory          (kbytes, -v) unlimited

В другой системе гораздо более ограничивающие значения, но я не могу на всю жизнь выяснить, где верхний 32 МБустанавливается лимит (32 МБ, несмотря на ошибки):

# ulimit -a | grep mem
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
virtual memory          (kbytes, -v) unlimited

Вторая система - RHEL 5.5.Я стремлюсь увеличить этот лимит хотя бы для одного пользователя - мне нужно большее выделение памяти APC mmap, но я не могу превысить 30 МБ, не выходя за указанный предел, и я бы предпочел не взламывать предоставленный сценарий инициализации apache.Где я должен пытаться переопределить системное значение по умолчанию, чтобы я мог отобразить больший сегмент памяти?Делать это в limit.conf для пользователя apache не очень много;вероятно, потому что скрипт init ничего не делает через PAM.

1 Ответ

0 голосов
/ 18 февраля 2011

Если пользовательский параметр гранулярности, который вы пробовали, не работает, вы должны убедиться, что вы правильно подобрали, какой пользователь достигает ограничения.

Вы также можете добавить такую ​​строку в limit.conf:

* hard memlock 40000

Это изменит настройку по умолчанию для всех пользователей.

Из справочной страницы limit.conf:

The syntax of the lines is as follows:

<domain> <type> <item> <value>

The fields listed above should be filled as follows:

<domain>

[snip]
·   the wildcard *, for default entry.
...