资讯专栏INFORMATION COLUMN

Weblogic诊断之文件句柄泄露问题

IT那活儿 / 1036人阅读
Weblogic诊断之文件句柄泄露问题

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!



问题描述


有时候业务比较繁忙时,就会出现如下问题:
too many open files:顾名思义即打开过多文件数。
不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。


故障症状


1. 进程报: I/O Exception错误,进程在执行文件I0时达到了文件描述符极限,并影响I0操作时,就会报此异常。
2. 服务监听异常,服务不可用。
3. 进程报:SocketException错误,进程打开的文件过多时,在打开新套接字连接时,可能就达到了文件描述符极限,如果错误影响到底层的TCP协议,就会报Socket Exception错误。


解决方法


优化句柄限制:
系统默认的ulimit对文件打开数量的限制是1024,修改/etc/security/limits.conf并加入以下配置,永久生效。
* soft nofile 65535 
* hard nofile 65535
硬限制是实际的限制,而软限制,是warnning限制,超过这个数值只会做出warning。
注意:
1)这个限制是针对单个用户的限制 ;
2)这个限制不会改变之前已经运行了的程序的限制 。


利用lsof探查句柄问题


查找文件句柄问题的时候,还有一个很实用的程序lsof。可以很方便看到某个进程开了那些句柄,也可以看到某个文件/目录被什么进程占用了。
例如分析句柄数,查找原因,这是解决问题最根本的办法。
那么如何分析?那就需要用到lsof这个命令了。
  • 统计各进程打开句柄数:lsof -n|awk {print $2}|sort|uniq -c|sort -nr

  • 统计各用户打开句柄数:lsof -n|awk {print $3}|sort|uniq -c|sort -nr

  • 统计各命令打开句柄数:lsof -n|awk {print $1}|sort|uniq -c|sort -nr

找出可疑的句柄泄露点,根据以上统计信息分析查找句柄泄露点,反馈开发厂商排查是否存在句柄泄露。


案例分析


1. 问题现象
某月某日监控探测发现java化营业渠道prod中心部分server不可用。检查发现weblogic控制台无法登陆、wlst方式无法访问Server。
2. 排查过程
1)使用netstat -na查看端口监听情况:
发现问题主机对应的server端口监控不存在,如上图 10202在10.243.x.x IP 上的监听不存在了。
 2)核查WebLogic Server日志是否存在异常报错:
发现server日志中存在如上报错,Too many open files (Accept failed),导致监听异常。
3)使用lsof查看文件句柄使用情况:
如上图,prod中心应用打开句柄数明显很高
分析lsof的结果:
发现进程号 34034 中打开的 coherence.properties  文件有:9209个。而当前WebLogic Server中配置的最大。
文件句柄数是10240,进程号34034打开的文件句柄数已达到10755。怀疑存在句柄泄露。
3. 处置办法
1)应用代码修复前,我侧建议将weblogic句柄数设置参数做以下调整,以缓解问题对业务造成的影响。当前句柄数设置为 10240   ,调整为:30720。
2)由于存在较多监听不在的情况,对现有连接暂时无影响,但是新的连接会无法连接上来,重启应用暂时恢复应用。
3)通知业务侧核查为何会存在coherence.properties文件大量打开而没有关闭的情况。
4)经开发商核实是产品中心打开缓存公共方法有问题,打开后未进行关闭。代码已修复上线。




本文作者:程红

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129621.html

相关文章

  • 内存泄露从入门到精通三部曲基础知识篇

    摘要:腾讯特约作者姚潮生首先以一个内存泄露实例来开始本节基础概念的内容。堆内存用于存放所有由创建的对象内容包括该对象其中的所有成员变量和数组。回到我们的问题,为什么内存会泄露堆内存中的长生命周期的对象持有短生命周期对象的强软引用,尽管 腾讯Bugly特约作者: 姚潮生 首先以一个内存泄露实例来开始本节基础概念的内容。 实例1:单例导致内存对象无法释放而泄露 showImg(http://i....

    nicercode 评论0 收藏0
  • DBASK问答集萃(2)

    摘要:新晋技术专家下面是墨天轮部分新晋的技术专家。大家可以点击往期阅读墨天轮技术专家邀请函了解详情,申请成为我们的技术专家,加入专家团队,与我们一起创建一个开放互助的数据库技术社区。新关联公众号墨天轮是一个开放互助的数据库技术社区。 引言 近期我们在DBASK小程序增加了数据库 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的专题栏目和一些新的技术...

    liuchengxu 评论0 收藏0
  • 2018先知白帽大会 | 议题解读

    摘要:摘要今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如在国际赛事中屡夺佳绩的团队,其队长将亲临现场,分享穿针引线般的漏洞利用艺术。从数据视角探索安全威胁阿里云安全工程师议题解读本议题讨论了数据为安全人员思维方式带来的变化。 摘要: 今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如HITCON在国际赛事中屡夺佳绩的CTF团队,其队长Orange将亲临现场...

    Hydrogen 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<