tomcat nio模式下 Too many open files

3 篇文章 0 订阅

今天大早来看测试服务器并发测试后的效果,结果不出意外宕机了,检查了一下tomcat抛错

Socket accept failed java.io.IOException: Too many open files

文件打开得太多了,奇怪的是自己的服务器程序并没有做文件读写操作,怎么会出这个异常呢,检查了一下得出以下结论

在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制

采用的是tomcat nio的模式所以造成了并发太大宕机了


解决办法如下:


前两句是修改参数 最后一句是生效
// 文件数
echo "fs.file-max = 65535" >> /etc/sysctl.conf 
// tcp 连接数
echo "* - nofile 65535" >> /etc/security/limits.conf
sysctl -p
当前设置最大打开文件数可以通过如下命令查看。

 ulimit -n 

接着重启机器就可以了


参考以下两篇文章

http://blog.csdn.net/qxk1989/article/details/7822792

http://blog.csdn.net/guowake/article/details/6615728




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值