在linux中ulimit命令用于限制进程所使用的资源,使用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