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 限制值。