root@ubuntu:~#ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31498
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
posix message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31498
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
紅字部分就是開啟檔案數1024個,一般這個太小了。也可以用ulimit -n檢視
如何設定呢,官方是這樣的:
第一步:配置/etc/security/limits.conf
sudo vim /etc/security/limits.conf4096可以自己設定,四列引數的設定見英文,簡單講一下:檔案尾追加
* hard nofile 40960
* soft nofile 40960
第一列,可以是使用者,也可以是組,要用@group這樣的語法,也可以是萬用字元如*%
第二列,兩個值:hard,硬限制,soft,軟體限制,一般來說soft要比hard小,hard是底線,決對不能超過,超過soft報警,直到hard數
第三列,見列表,開啟檔案數是nofile
第四列,數量,這個也不能設定太大
第二步:/etc/pam.d/su(官方)或/etc/pam.d/common-session(網路)
sudo vim /etc/pam.d/su將 pam_limits.so 這一行注釋去掉
重起系統
sudo vim /etc/pam.d/common-session開啟/etc/pam.d/su,發現是包含/etc/pam.d/common-session這個檔案的,所以修改哪個檔案都應該是可以的加上以下一行
session required pam_limits.so
這個覺得修改su這個檔案比較好,取消注釋就ok了,不容易出錯,vim開啟,定位,x一下即可
官方只到第二步,就重啟系統了,沒有第三步,好象不行,感覺是不是全是第三步的作用?!
第三步:配置/etc/profile
最後一行加上
ulimit -shn 40960重啟,ulimit -n 驗證,顯示40960就沒問題了
更新:2012/9/29:
centos 6.3上,只要修改/etc/security/limits.conf,重新登入就ok了。
ubuntu server 12.04.1上,修改/etc/security/limits.conf,重登入重啟不管用,改/etc/pam.d/common-session, su,重登入重啟不管用,非要改/etc/profile?
看來兩者是有差異的?還是我測試不到位?
修改linux最大檔案控制代碼數
大家知道在linux伺服器大併發調優時,往往需要預先調優linux引數,其中修改linux最大檔案控制代碼數是最常修改的引數之一。在linux中執行ulimit a 即可查詢linux相關的引數,如下所示 root mongodb11 ulimit a core file size blocks,c...
修改linux最大檔案控制代碼數
在linux中執行ulimit a 即可查詢linux相關的引數,如下所示 root mongodb11 ulimit a core file size blocks,c 0 data seg size kbytes,d unlimited scheduling priority e 0 file ...
修改linux最大檔案控制代碼數
修改linux最大檔案控制代碼數 大家知道在linux伺服器大併發調優時,往往需要預先調優linux引數,其中修改linux最大檔案控制代碼數是最常修改的引數之一。root mongodb11 ulimit a core file size blocks,c 0 data seg size kbyt...