linux修改最大文件鏈接數open files/ulimit -n
使用ulimit -a 可以查看當前系統的所有限制值,使用ulimit -n 可以查看當前的最大打開文件數。
新裝的linux默認只有1024,當作負載較大的服務器時,很容易遇到error: too many open files。因此,需要將其改大。
使用 ulimit -n 65535 可即時修改,但重啟後就無效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)
有如下三種修改方式:
1.在/etc/rc.local 中增加一行 ulimit -SHn 65535
2.在/etc/profile 中增加一行 ulimit -SHn 65535
3.在/etc/security/limits.conf最後增加如下兩行記錄
* soft nofile 65535
* hard nofile 65535
具體使用哪種,試試哪種有效吧,我在 CentOS中使用第1種方式無效果,使用第3種方式有效果,而在Debian中使用第2種有效果
其實CentOS ulimit命令本身就有分軟硬設置,加-H就是硬,加-S就是軟默認顯示的是軟限制,如果運行CentOS ulimit命令修改的時候沒有加上的話,就是兩個參數一起改變.生效
修改完重新登錄就可以見到.(我的系統是CentOS5.1.修改了,重新登錄後就立刻生效.可以用CentOS ulimit -a 查看確認.)
[root@dev ~]# 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) 17513
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 17513
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited