解决高并发中出现Too many open files问题
来源:互联网 发布:ipad照片怎么导入mac 编辑:程序博客网 时间:2024/05/20 18:18
1.主要方向:在源码项目中查找所有引用了InputStream或者其他流的地方,查看其是否在使用完后,正常close掉,此处建议将流的close放到finally块中,这样异常时也会去close流。
2.次要方向:session或者其他有用到socket的代码处,仔细查询看是否有没有释放资源的地方
另附:
在Linux中执行下面2个指令可以看出系统默认open files的1024不足以支撑测试,请相应调整为4096。
在系统访问高峰时间以root用户执行下面的脚本,可能出现的结果如下:
# lsof -n|awk ‘{print$2}’|sort|uniq -c |sort -nr|more
1170 32229
57 24244
57 24231
56 24264
其中第一列是打开的文件句柄数量,第二列是进程号。
# ps-aef|grep 32229
root 32229 1 33 10:58 pts/0 00:09:17/usr/java/jdk1.6.0_32/bin/java-Djava.util.logging.config.file=/kmsapp/apache-tomcat-6.0.35_engine/conf/logging.properties-Xms512m -Xmx2048m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.endorsed.dirs=/kmsapp/apache-tomcat-6.0.35_engine/endorsed -classpath/kmsapp/apache-tomcat-6.0.35_engine/bin/bootstrap.jar-Dcatalina.base=/kmsapp/apache-tomcat-6.0.35_engine-Dcatalina.home=/kmsapp/apache-tomcat-6.0.35_engine -Djava.io.tmpdir=/kmsapp/apache-tomcat-6.0.35_engine/temporg.apache.catalina.startup.Bootstrap start
发现是tomcat进程打开最多文件句柄数量,而且它打开了1170个文件句柄数量,超出了1024的默认值。
所以应该将值调为4096,那么要想永久性的调整,请按如下2步操作:
1、修改/etc/security/limits.conf
通过 vi /etc/security/limits.conf修改其内容,在文件最后加入(数值也可以自己定义):
* soft nofile = 4096
* hard nofile = 4096
2、修改/etc/profile
通过vi/etc/profile修改,在最后加入以下内容:
ulimit -n4096
- 解决高并发中出现Too many open files问题
- 高并发下出现 Too many open files
- 解决Linux中出现Too many open files
- 解决Linux中Too many open files问题
- 解决Linux中Too many open files问题
- 解决Linux中Too many open files问题
- Too many open files 问题的解决
- Too many open files 问题的解决
- Too many open files 问题的解决
- Too many open files 问题的解决
- 解决Too many open files问题
- tomcat 6.0 报 “too many open files 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 问题的解决
- 解决创建socket时Too many open files问题
- Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
- Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
- 做产品经理如何起步
- HBase总结(十二)Java API 与HBase交互实例
- Best Time to Buy and Sell Stock III
- Ajax级联实例
- 解决高并发中出现Too many open files问题
- Valid signing identity not found解决办法(原有IDP私钥丢失)及Certificate、App ID、Devices、Provisioning Profiles之间区别
- 交叉编译sqlite3
- 从 windows 到 linux(1):g++不能用函数内定义的类型做模板参数
- 第7周项目1电阻串联
- QtQuick桌面应用开发指导 4)动态管理Note对象_B 5)外观加强 6)更多改进
- linux对源文件的编译过程
- C# 枚举 Enum 工具类
- WPF界面刷新