Linux默认值open files和max user processes为1024
ulimit -n
1024
ulimit Cu
1024
问题描述:
说明server只允许同时打开1024个文件,处理1024个用户进程
使用ulimit -a可以查看当前系统饿所有限制值,使用ulimit -n可以查看当前的最大打开文件数
新装的linux默认只有1024,当作负载较大的服务器时
容易遇到erro:too many open files
需要将其改大
解决方法:
使用ulimit Cn 65535可以及时修改,但重启后就无效了。
(ulimit -SHn 65535等效ulimit -n 65535,-S,soft,-H,hard)
有三种修改方式:
- 在/etc/rc.local中增加一行 ulimit -SHn 65535
- 在/etc/profile中增加一行 ulimit -SHn 65535
- 在/etc/security/limits.conf 最后增加
*soft nofile 65535
*hard nofile 65535
*soft nproc 65535
*hard nproc 65535
具体使用哪种,在 CentOS 中使用第1 种方式无效果,使用第3 种方式有效果
而在Debian 中使用第2 种有效果
ulimit -n
65535
ulimit -u
65535
备注:ulimit 命令本身就有分软硬设置,加-H 就是硬,加-S 就是软默认显示的是软限制
soft 限制指的是当前系统生效的设置值。 hard 限制值可以被普通用户降低。但是不能增加。 soft 限制不能设置的比 hard 限制更高。 只有 root 用户才能够增加 hard 限制值。