默认最大锁定内存值来自哪里?
问题描述:
所以在一个系统上,我有相当大开值:默认最大锁定内存值来自哪里?
$ ulimit -a | grep mem
max locked memory (kbytes, -l) 40000
max memory size (kbytes, -m) unlimited
virtual memory (kbytes, -v) unlimited
另一个系统有更多的限制值,但我不能为我的生命找出32MB的上限(它是32MB,尽管错了)正在设置:
# 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 MB,我宁愿不要破解提供的apache init脚本。我应该在哪里尝试覆盖系统默认值,以便映射更大的内存段?在apache用户的limits.conf中做这件事并不是很多;可能是因为init脚本没有通过PAM做任何事情。
答
如果您尝试的用户粒度设置不起作用,则应确保您已正确匹配哪个用户达到了限制。
你也应该能够像这样添加一行limits.conf中:
* hard memlock 40000
这会更改默认设置,为所有用户。
从limits.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.