java.net.SocketException: Too many open files问题分析及解决方案
来源:互联网 发布:淘宝店铺装修怎么还原 编辑:程序博客网 时间:2024/06/05 17:54
Java web应用在执行一段时间之后出现了这么个问题
用ulimit -a看看Linux打开文件限制
通过以上命令,我们可以看到open files 的最大数为1024
那么我们可以通过一下命令修改该参数的最大值
2. 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 没有关闭。导致文件一直处于打开状态。造成资源的严重浪费。
修改之后的简单代码如下:
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();
}
}
}
}
**********************************************************************************************************************************************
本质原因肯定能够是你的程序中没有及时close掉文件(在linux/unix中Socket也是文件)。否则只有在上千的绝对同时并发时,才可能出现Too many open files错误。
- java.net.SocketException: Too many open files问题分析及解决方案
- java.net.SocketException: Too many open files问题分析及解决方案
- java.net.SocketException: Too many open files
- java.net.SocketException: Too many open files
- java.net.SocketException: Too many open files
- java.net.SocketException: Too many open files
- java.net.SocketException: Too many open files
- java.net.SocketException: Too many open files
- java.net.SocketException: Too many open files 问题的解决办法
- java.net.SocketException: Too many open files 问题的解决
- java.net.SocketException: Too many open files 问题的解决办法
- java.net.SocketException: Too many open files 问题的解决
- java.net.SocketException: Too many open files 问题的解决
- java.net.SocketException: Too many open files 问题的解决办法
- java.net.SocketException: Too many open files 问题的解决办法
- java.se--异常--java.net.SocketException: Too many open files
- java.net.SocketException: Too many open files解决方法
- 遇到java.net.SocketException: Too many open files
- 设计模式学习笔记——状态(State)模式框架
- Handle 相关
- 【java】jvm调优笔记(二)—— GC策略&内存申请、对象衰老
- FFmpeg总结(六)AV系列结构体之AVPacket
- 批处理总结
- java.net.SocketException: Too many open files问题分析及解决方案
- vs2010编译器的使用
- Maven多模块项目管理小结
- css样式DEMO
- Lecture 9: Ways to make neural networks generalize better 提高神经网络泛化能力的方法
- 数论莫比乌斯——bzoj2820YY的GCD
- Maven实战(九)——打包的技巧
- UML类图介绍及画法
- reset.css