在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就不奇怪了。
后来把图片新闻改过了之后,网站又恢复正常了。
分享到:
相关推荐
Too many open files 问题的解决.txt
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法,三种方案,临时,永久,根治
AIX关于Weblogic的报错_Too_many_open_files_的处理
转:java.net.SocketException: Too many open files解决方法最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报 java.net.SocketException: Too many open files错误,错误...
linux too many open files解决方案.docx
NULL 博文链接:https://phl.iteye.com/blog/2256121
本文主要介绍Linux报too many open files时的解决方法,感兴趣的朋友可以看一下。
该文档是介绍访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files)的解决方案,与大家共享!
NULL 博文链接:https://yizhilong28.iteye.com/blog/1154098
socket accept报Too many open files的原因
HTTPConnectionPool(host=‘t.tips', port=80): Max retries exceeded with url: /index.php (Caused by NewConnectionError('<requests>: Failed to establish a new connection: [Errno 24] Too many ope
Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:
每个步骤亲测通过,项目实战全部OK,如果要搭建nginx 跟fastdfs的朋友,可以下载下来保存,这是我看了很多文档以及实验完善过的文档,每个步骤都比较详细
too many open files问题分析和解决
2008mvp.zip
java工程中想要读取或者导出**.yaml文件所需要的支持jar包,下载解压后直接添加到项目中即可。 如果是使用eclispe创建的yaml文件,那么还需要下载eclipse支持yaml文档的插件
google webrtc 实现视频通话,客户端和服务端采用websocket 连接,实现信令转换,可以正常视频通话,记得提前打开权限
大片 Bigslice是的无服务器集群数据处理系统。...如果测试因socket: too many open files失败socket: too many open files错误socket: too many open files ,请尝试增加打开文件的最大数量。 $ ulimit -n 2000
<br>一、有以下两种情况请下载BDE驱动程序进行安装: 1、An error occurred while attempting to initialize the Borland databse Engine ($2109). 2、Not enough files handles too many open files.You ...