2010-09-22 66 views
0

所以在一个系统上,我有相当大开值:默认最大锁定内存值来自哪里?

$ 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做任何事情。

回答

0

如果您尝试的用户粒度设置不起作用,则应确保您已正确匹配哪个用户达到了限制。

你也应该能够像这样添加一行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.