java.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)
随笔分类
随笔档案
文章分类
相册
搜索
*
阅读排行榜
评论排行榜
原本以为是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
Feedback
/# 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博客 相关文章:
Powered by:
IT博客
Copyright ©2012 TRE-China R&D