`
wangysh
  • 浏览: 19372 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

应用“open too many files"问题调查

 
阅读更多
情景描述最近发现应用后端时不时的存在open too many files的日志错误

原因分析在应用的API与应用Master通信过程中,因为应用API程序中没有正常关闭socket连接,在API端机器上查询socket状态均处于CLOSE_WAIT中,导致JAVA进程打开的句柄数达到了系统配置的上限值(1024),最终造成 “Too many open files”,无法再与应用Master通信。 
CLOSE_WAIT是被动关闭(关闭请求由另一端主动发起),如果出现CLOSE_WAIT状态99%意味着你的应用程序 bug导致。

(图中server表示Master, client表示API,client端出现CLOSE_WAIT表示client被动关闭)
 
解决方法:
 
1、调大进程可打开的文件句柄数(原来1024调整到65535),作为一个应用服务1024个文件句柄数实在是太太寒暄了呢。
  • 使用root 登陆,修改文件/etc/security/limits.conf
  • vim /etc/security/limits.conf 添加 
    #<domain>      <type>     <item>   <value> 
    *              soft     nofile    65535
    *             hard    nofile    65535
      
    注:xxx - nofile 65535
       xxx 是一个用户,如果是想所有用户生效的话换成 * ,设置的数值与硬件配置有关,别设置太大了。


 
2、调整CLOSE_WAIT的时间(这一步可视自己情况而定)
  • 修改方法:(暂时生效,重新启动服务器后,会还原成默认值) 
    sysctl -w net.ipv4.tcp_keepalive_time=600   
    sysctl -w net.ipv4.tcp_keepalive_probes=2 
    sysctl -w net.ipv4.tcp_keepalive_intvl=2 

    注意:Linux的内核参数调整的是否合理要注意观察,看业务高峰时候 效果如何
  • 若做如上修改后,可起作用;则做如下修改以便永久生效。 
    vi /etc/sysctl.conf 

    若 配置文件中不存在如下信息,则添加: 
    net.ipv4.tcp_keepalive_time = 1800 
    net.ipv4.tcp_keepalive_probes = 3 
    net.ipv4.tcp_keepalive_intvl = 15 

    编辑完 /etc/sysctl.conf,要重启network 才会生效 
    /etc/rc.d/init.d/network restart 
    然 后,执行sysctl命令使修改生效,基本上就算完成了。 
 
3.前两步是不能解决根本问题,最重要的是要将修复程序中Bug。我们是使用Apache Commons下的HttpClient时,在使用HttpClient过程中一定要注意http请求关闭的问题。这是在使用HttpClient时容易忽略的细节。具体请参见《HttpClient容易忽视的细节——连接关闭

       
  • 大小: 24.3 KB
分享到:
评论

相关推荐

    Too many open files 问题的解决.txt

    “Too many open files”错误是由于系统或进程级别的文件句柄限制不足造成的,通过合理调整这些限制,可以有效地避免此类问题,确保应用程序和服务的稳定运行。不过,增加文件句柄限制的同时,也应考虑到系统资源的...

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是由于进程打开的文件数量超过了操作系统的限制,导致服务器...

    报错:too many open files处理

    总的来说,“too many open files”是一个常见的运行时问题,通过理解操作系统限制和程序设计原则,我们可以有效地预防和解决这个问题。对于开发者而言,熟悉这些技巧不仅能提高应用的稳定性和性能,还能避免因错误...

    Too many open files 解决方法

    在将Web服务器从Windows环境迁移到Linux环境后,遇到了一个常见的问题:“java.net.SocketException: Too many open files”。这种异常通常发生在高并发环境下,例如网站访问量显著增加时。在Windows环境中长时间...

    AIX关于Weblogic的报错_Too_many_open_files_的处理

    通过上述步骤,我们可以有效地解决AIX环境下Weblogic遇到的“Too many open files”问题。这不仅涉及了系统层面的资源限制调整,还包括了应用级别的优化措施。在实际操作过程中,还需要根据具体情况灵活调整,确保...

    java.io.FileNotFoundException: *****(Too many open files)

    在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...

    linux too many open files解决方案.docx

    当你把打开文件数量限制值增大到一定程度,你的 Too many open files 问题就不会再出现了。 永久修改 如果要永久修改打开文件数量限制,可以修改 `/etc/security/limits.conf` 文件,在文件中添加两行: `* - no...

    Linux报too many open files的解决方案

    Linux系统在运行时经常会出现"too many open files"(文件打开过多)的错误,这是一个非常常见的问题,通常发生在当系统运行的应用程序尝试打开的文件数量超过了系统限制时。为了解决这个问题,我们可以从两个方面...

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。下面是解决这个问题的方法。 一、临时修改 ulimit 值 可以使用 ulimit 命令来临时修改打开文件数的限制。例如,使用以下命令可以将打开文件数...

    Python错误提示:[Errno 24] Too many open files的分析与解决

    在Python编程过程中,可能会遇到一个常见的错误提示:“[Errno 24] Too many open files”。这个错误通常意味着你的程序尝试打开的文件句柄超过了操作系统允许的最大限制。下面我们将深入探讨这个问题的原因、如何...

    socket accept报too many open files的原因

    socket accept报Too many open files的原因

    mysql too many open connections问题解决方法

    MySQL中的“Too many open connections”错误...通过以上措施,可以有效地解决或预防“Too many open connections”的问题,保证MySQL服务器的稳定运行。同时,定期审查并调整这些设置,以适应应用程序的增长和变化。

    39 案例实战:如何解决经典的Too many connections故障?背后原理是什么.pdf

    Too many connections故障是数据库运维中较为常见的问题,特别是在并发访问量较大的Web应用中,其背后的原理和解决方法值得深入探讨。 在Linux系统中,每个进程可用的文件句柄(file handles)数量是有限制的。文件...

    Linux下打开的文件过多错误

    Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:

    nginx fastdfs.docx

    【Nginx FastDFS 搭建指南】 搭建 Nginx 与 FastDFS 的组合,是一种常见的文件存储和分发解决方案。FastDFS 是一个开源的轻量级分布式文件系统,而 Nginx 作为高性能的 Web 服务器和反向代理服务器,两者结合能够...

    Ansj中文分词(强大)

    如果你发现此模式分词存在问题.可以看.新词发现.是此分词的初始版本! 此分词保证了准确率,具有人名识别的功能! 此分词结果,具有新词发现,人名识别,机构名识别.也许准确率稍差.但是非常具有应用价值! 献给广大使用...

    http连接关闭

    too many open files问题分析和解决

    2008mvp.zip

    1. **微软最有价值专家(MVP)计划**:这是一个由微软公司设立的荣誉奖项,授予那些在技术社区中分享知识、帮助他人解决问题并对微软技术做出贡献的专家。 2. **申请流程**:文件可能详细介绍了2008年申请MVP的过程,...

    Hadoop问题处理

    在Hadoop集群中,遇到`java.io.IOException: Too many open file`和`java.lang.OutOfMemoryError`这两种异常,通常是由于资源限制或管理不当引起的。本文将深入探讨这两种错误的成因、解决策略以及如何避免它们。 1...

Global site tag (gtag.js) - Google Analytics