新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。
使用 ulimit -n 65536 可即时修改,但重启后就无效了。(注ulimit -SHn 65536 等效 ulimit -n 65536,-S指soft,-H指hard)
有如下三种修改方式:
1.在/etc/rc.local 中增加一行 ulimit -SHn 65536
2.在/etc/profile 中增加一行 ulimit -SHn 65536
3.vi /etc/security/limits.conf最后增加如下两行记录
#root soft nofile 65536
#root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
# End of file
具体使用哪种,试试哪种有效吧,我在 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) 65536
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
如果用root设置完,其他用户应该断开ssh连接再连,就能看到变化了,
如果经过“堡垒机”,断开连接重连还是不行,可以重启sshd服务
service sshd restart