2010-09-22 67 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.