java.net.SocketException Too many open files 问题的解
Posted onjava.net.SocketException Too many open files 问题的解决办法 - R&D--梦想在这里成真 R&D--夢を実現しましょう R&D--Dreams Come Ture - IT博客
R&D--梦想在这里成真 R&D--夢を実現しましょう R&D--Dreams Come Ture 努力 我们将梦想变为现实
IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合 :: 管理
posts - 134, comments - 20, trackbacks - 0
<2009年2月>日一二三四五六25262728293031123456789101112131415161718192021222324252627281234567
常用链接
留言簿(1)
随笔分类
- AJAX(5)
")
- ASP.NET(13)
")
- C/#(13)
")
- CSS(4)
")
- HTML(9)
")
- JAVA(39)
")
- Javascript(15)
")
- Linux(6)
")
- Orcal(1)
")
- Ruby(1)
")
- SQL(5)
")
- XML(3)
")
- 感想(1)
")
- 技术资源(16)
")
- 精品转载(61)
")
随笔档案
- 2010年2月 (1)
- 2009年11月 (14)
- 2009年10月 (1)
- 2009年8月 (3)
- 2009年7月 (2)
- 2009年4月 (4)
- 2009年3月 (5)
- 2009年2月 (4)
- 2009年1月 (3)
- 2008年12月 (2)
- 2008年11月 (13)
- 2008年10月 (17)
- 2008年9月 (14)
- 2008年8月 (4)
- 2008年7月 (5)
- 2007年11月 (4)
- 2007年8月 (5)
- 2007年7月 (33)
文章分类
相册
搜索
*
最新评论 ![]()
- 1. re: java.net.SocketException: Too many open files 问题的解决办法[未登录]
- 不错
- --11
- 2. re: 超好用的css2.0様式表手帳
- hkhk
- --xiong
- 3. re: java.net.SocketException: Too many open files 问题的解决办法
- 212121
- --212
- 4. re: JAVA读取xml文件中节点值(转)
- 怎么不见xml文档呢?
- --menglinxi
- 5. re: 一个比较好用的HashMap的遍历方法
- 评论内容较长,点击标题查看
- --lurenjia
阅读排行榜
- 1. java.net.SocketException: Too many open files 问题的解决办法(6623)
- 2. JAVA读取xml文件中节点值(转)(2230)
- 3. HashMap排序问题(2169)
- 4. java中的String.split() 中“|”作为分隔符的问题和数组长度问题(1985)
- 5. GWT开发的8个忠告(转载)(1984)
评论排行榜
- 1. 用javacsv API 来操作csv文件 (4)
- 2. java 全角半角转换函数(2)
- 3. java.net.SocketException: Too many open files 问题的解决办法(2)
- 4. Ajax中Session的使用方法(2)
- 5. JAVA开发中的乱码问题(1) java.net.SocketException: Too many open files 问题的解决办法 linux 上tomcat 服务器抛出socket异常“文件打开太多”的问题 java.net.SocketException: Too many open files at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384) at java.net.ServerSocket.implAccept(ServerSocket.java:450) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60) at org.apache.tomcat.util.net.PoolTcpEndpoint.acceptSocket(PoolTcpEndpoint.java:407) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:70) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)
原本以为是tomcat的配置或是应用本身的问题,"谷歌"一把后才发现,该问题的根本原因是由于系统文件资源的限制导致的。
具体可以参考http://www.bea.com.cn/support_pattern/Too_Many_Open_Files_Pattern.html 的说明。具体的解决方式可以参考一下: 1。ulimit -a 查看系统目前资源限制的设定。 [root@test security]/# umlimit -a -bash: umlimit: command not found [root@test security]/# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7168 virtual memory (kbytes, -v) unlimited [root@test security]/# 通过以上命令,我们可以看到open files 的最大数为1024 那么我们可以通过一下命令修改该参数的最大值
- ulimit -n 4096 [root@test security]/# ulimit -n 4096 [root@test security]/# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 4096 pipe size (512 bytes, -p) 8 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7168 virtual memory (kbytes, -v) unlimited
这样我们就修改了系统在同一时间打开文件资源的最大数,基本解决以上问题。
以上部分是查找网络上的解决方法。设置了之后段时间内有作用。
后来仔细想来,问题还是要从根本上解决,于是把以前的代码由认真地看了一遍。终于找到了,罪魁祸首。
在读取文件时,有一些使用的BufferedReader 没有关闭。导致文件一直处于打开状态。造成资源的严重浪费。
修改之后的简单代码如下:
public void test(){
BufferedReader reader =null;
try{
reader = 读取文件;
String line = "";
while( ( ine=reader.readLine())!=null){
其他操作
}
} catch (IOException e){
System.out.println(e);
} finally{
if(reader !=null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以上只是我的个人见解,希望对大家有所帮助。
posted on 2008-08-07 09:23 TRE-China R&D 阅读(6624) 评论(2) 编辑 收藏 引用 所属分类: Linux 、JAVA
/# re: java.net.SocketException: Too many open files 问题的解决办法 2011-03-08 11:10 | 212 212121 回复 更多评论 /# re: java.net.SocketException: Too many open files 问题的解决办法[未登录]
2011-11-24 12:58 | 11 不错 回复 更多评论 刷新评论列表
博问 - 解决您的IT难题
IT新闻:
· 印度35美元平板机出师不利
· Firefox领先Windows,Chrome领先Linux
· 物理是一个NP-hard问题
· 优酷网与CCTV6电影网再签署一年合作协议
· Bottlenose:将数据可视化融入社交网络运营中 博客园首页 IT新闻 IT问答 程序员招聘 标题 请输入标题 姓名 请输入你的姓名 主页 请输入验证码 验证码 /* 内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
请输入评论内容 Remember Me? 登录 使用高级评论 新用户注册 返回页首 恢复上次提交 [使用Ctrl+Enter键可以直接提交] 博客园首页随笔:
· 游戏运营技术之---玩家关系管理(PRM)--〉推进虚拟营销
· 建立完善的日期定义表
· 《人月神话》摘要
· C++标准编程:虚函数与内联
· 莫蹭网:“黑客”怎样伪造wifi钓你(Windows平台) 博客园 IT新闻 BlogJava 博客生活 C++博客 PHP博客 相关文章:
- linux下文件夹压缩(专载)
- linux VI常用命令
- Linux命令(日语版)
- Linux知识宝库
- java.net.SocketException: Too many open files 问题的解决办法
- 很好的Linux笔记(摘录)
Powered by:
IT博客
Copyright ©2012 TRE-China R&D