由图片新闻切换引起的Too many open files问题

在Linux系统上部署J2EE项目的话,可能会出现java.net.SocketException: Too many open files 这样的异常,网上的说法一般是说把系统的file-max值设大一些,但是这样往往是治标不治本的做法,而且这个问题绝大部分情况下都是因为程序问题引起的,最近我也碰到了这个问题,但是在网上一直没有找到相符合的资料,最后还是自己解决了,特拿出来分享下。

 

首先我们的网站已经跑了一段时间了,最近才频繁出现too many open files问题,所以可以肯定不是系统问题。

然后思考问题出现前后的不同,没觉得新增加的程序有什么可疑的地方。

接着,有一次我的浏览器停留在网站前台首页的时候,我突然发现页面过几秒钟标题栏会刷新一下,再继续观察,发现刷新的频率和首页上的图片新闻刷新的频率一致,再仔细看,刷新的时候浏览器左下角显示"正在下载图片:xxxx"字样。然后想起来,以前网站上一直没有发过图片新闻,最近才开始使用这个功能。

 

很强烈的直觉让我认为问题就出在图片新闻上,于是查看了一下图片新闻切换的JS代码(因为是团队的其他成员写的,以前我也没关注过),发现它的实现方式是每过5秒钟执行一个JS函数,在函数中更改图片新闻显示框里的<img>标签的src和href值。然后我就明白了:本来这个网站的并发量在同样以tomcat为容器的中小型应用中就算是比较大了,如果每个访问者还这样以5秒钟/次的频率来发送请求,而且请求的都是那四五张图片,那出现too many open files就不奇怪了。

 

后来把图片新闻改过了之后,网站又恢复正常了。

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值