解决高并发中出现Too many open files问题
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问题相关推荐
- PHP中如何解决高并发
PHP中如何解决高并发 1:硬件方面 普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的.主要影响服 ...
- 面试题:JavaEE项目中,你准备如何解决高并发问题?比如1000万人同时登录。作者——DengJun
面试中遇到了这样的问题,JavaEE项目中,你准备如何解决高并发问题?比如1000万人同时登录. 1 .从最基础的地方做起,优化我们写的代码,减少必要的资源浪费. a.避免频繁的使用new对象, ...
- springboot中使用Redis解决高并发的方法
一.集成redis 1.引入redis的依赖 <dependency><groupId>org.springframework.boot</groupId>< ...
- 乐观锁 -业务判断 解决高并发问题
在解决高并发问题时,如果是分布式系统显然我们只能够使用数据库端加锁机制来解决这个问题,但是这种同步机制或者数据库物理锁机制会牺牲一部分的性能,所以常常以另外一种方式来解决这个问题 就是乐观锁模式 银行 ...
- 每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享...
本文来源于caoz梦呓公众号高并发专辑,以图形化.松耦合的方式,对互联网高并发问题做了详细解读与分析,"技术在短期内被高估,而在长期中又被低估",而不同的场景和人员成本又导致了巨头 ...
- 转发:php解决高并发
php解决高并发(转发:https://www.cnblogs.com/walblog/articles/8476579.html) 我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Pe ...
- Spring Boot实战解决高并发数据入库: Redis 缓存+MySQL 批量入库
前言 最近在做阅读类的业务,需要记录用户的PV,UV: 项目状况:前期尝试业务阶段: 特点: 快速实现(不需要做太重,满足初期推广运营即可) 快速投入市场去运营 收集用户的原始数据,三要素: 谁 在什 ...
- php 文件锁 重发请求,PHP使用文件锁解决高并发问题示例
本文实例讲述了PHP使用文件锁解决高并发问题.分享给大家供大家参考,具体如下: 新建一个.txt文件,文件中什么都不用写. [一].阻塞(等待)模式:(只要有其他进程已经加锁文件,当前进程会一直等其他 ...
- 高并发中的 限流、熔断、降级、预热、背压你都知道是什么意思吗?
首先,我们需要明确一下这几个名词出现的场景:分布式高并发环境.如果你的产品卖相不好,没人鸟它,那它就用不着这几个属性.不需要任何加成,低并发系统就能工作的很好. 分布式系统是一个整体,调用关系错综复杂 ...
最新文章
- oracle数据库解决system表空间已爆满的问题
- mysql中整理设置__MySQL整理
- FFMpeg框架代码阅读
- 《北大学科》第一季:数学篇
- MySQL 开源工具集合
- 关于批处理的学习之二[显示篇]
- chrome插件-显示在地址栏的二维码
- Oracle服务的作用
- 感知机学习算法的直观解释
- 还在花钱买课呢?教你白嫖开放注册图书馆价值上万元的学习资源
- android tif格式文件,后缀tif文件怎么打开(tif图片查看器安卓版)
- Qt中模态对话框的使用示例及accept()和reject()槽函数的使用
- 关于Linux备份文件和应用的几个命令:tar和cp
- CTex listings宏包出错undefined control sequence,换成verbatim解决问题
- 阿西莫夫机器人三定律
- 资源管理框架(mesos/YARN/coraca/Torca/Omega)选型分析
- wifi热点创建和自动连接
- 判断手机为Android还是ios
- 【硬十宝典】——1.2【基础知识】开关电源各种拓扑结构的特点
- 【Java学习】从Java历史背景到创建第一个工程——超详细Java入门(多图预警
热门文章
- 中国历史上农村剩余劳动力的安置政策
- Illegal access: this web application instance has been stopped already. Could not load []. The foll
- 算法笔记知识点整理大全
- 浅析SFX脚手架源码
- 陌陌突然改名Hello,能撕掉固有标签吗?
- 在PowerDesigner中应用达梦数据库
- LeetCode(String) 2325. Decode the Message
- 最全最常用的RTMP、RTSP、HTTP协议流常用直播流地址
- 【每日一题】【[JSOI2007]建筑抢修】
- 项目总结之论员工的自我修养