Tomcat Too many open files

本文探讨了在生产环境中遇到Too many open files错误的原因及解决方案。通过对Tomcat日志的分析,发现并发请求过大导致系统报错。进一步调查发现异常重复请求增多,最终定位为外部HTTP POST请求因对方服务器故障引发。文章还提供了调整Linux系统打开文件数限制的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        早上到公司刚坐下就听运维同事讲服务器计费出问题了,打开tomcat日志一看报Too many open files ,Linux系统默认打开文件数是1024,而实际的生产环境中,这个值总是显得太小,尤其是对于一些并发较大的系统,而太小的后果就是你的系统会报:too many open files 等这样的错误导致你系统。使用ulimit -u 查看open files设置,发现之前同事已经改到足够大(正常运行一直未出现改错误)。那么唯一的可能就是并发变得更加大,通过监控发现正常请求其实和平时差不多,反而多了一些重复请求(系统请求失败会默认重复请求三次),那么是神马原因会重复请求呢,查了一下,在流程里面有HTTP POST外部请求,于是询问对方服务器的确有问题,导致这个地方同步等待而堆积大量请求无法处理,从而导致Too many open files.这里的确是系统设计上的缺陷,因为第一个版本比较粗糙,在下一版本需要将这类问题考虑进去,否则导致服务器无法正常服务影响收入。

ulimit -u 查看open files设置
ulimit -a
查看所有设置
ulimit -u 65535(
新的open files )修改设置
ulimit -n? 65536
设置用户可以同时打开的最大文件数(max open files

lsof -p pid [httpd进程的 pidjavapid]来查看系统中apache进程和java运行时进程当前打开的文件资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值