首页 > 其他 > 详细

Too many open files问题解决

时间:2019-10-29 12:31:20      阅读:100      评论:0      收藏:0      [点我收藏+]

问题描述:java工程,启动tomcat后发现catalina.out启动日志 报错“Too many open files”

原因:句柄数超出系统限制。

句柄含义:不单是文件,也包括打开的通讯链接(比如socket),正在监听的端口等等

解决:ulimit -a 可以查看当前系统设置的最大句柄数是多少,如下图 open files即是最大句柄数设置

技术分享图片

查看全部进程占用句柄数总和:lsof|awk ‘{print $2}‘|wc -l

查看某一个进程占用句柄数: ls -l /proc/pid(例如10124)/fd/ | wc -l

查看系统中进程打开文件数的一个排序:lsof -n |awk ‘{print $2}‘|sort|uniq -c |sort -nr|more

技术分享图片

如果总和超过最大句柄数设置,则设置最大句柄数即可,命令如下

ulimit –n 65535  设置最大句柄数是65535

可以再次输入ulimit -a 查看确认是否生效,如下图

技术分享图片

生效,解决! 

 

扩展:linux句柄如何理解

在linux系统设计里面遵循一切都是文件的原则,即磁盘文件、目录、网络套接字、磁盘、管道等,所有这些都是文件,在我们进行打开的时候会返回一个fd,即是文件句柄。如果频繁的打开文件,或者打开网络套接字而忘记释放就会有句柄泄露的现象。在linux系统中对进程可以调用的文件句柄数进行了限制,在默认情况下每个进程可以调用的最大句柄数是1024个,如果超过了这个限制,进程将无法获取新的句柄,而从导致不能打开新的文件或者网络套接字,对于线上服务器即会出现服务被拒绝的情况。

 

Too many open files问题解决

原文:https://www.cnblogs.com/wanghongsen/p/11757634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!