问题
昨天,阿里云的服务器出现少理的Too many open files,但用ulimit -n
查到的连接是65535,而用lsof -p 进程pid
查到的只有4k多,远远小于ulimit的限制,百思不得期解。
解决
查询cat /proc/进程pid/limits
查到的Max open files的限制是4096,解决方法,修改
通过vi /etc/security/limits.conf
修改其内容,在文件最后修改为(数值也可以自己定义):
* soft nofile 65535
* hard nofile 65535
* - nproc 102400
* - nofile 102400
重启服务器,启动JAVA进程,再次使用cat /proc/进程pid/limits
查到的Max open files的限制是102400,最后通过日志及现场情况确认,解决问题!