项目异常Too many open files

4 篇文章 0 订阅
3 篇文章 0 订阅

错误日志

在这里插入图片描述

现象

错误出现后,系统外部无法正常访问,系统内部服务未发生特殊其他异常。内存占用过高为正常的4倍左右。

解决过程

解决过程A

问题发生后,为了保障项目运行,直接重新启动服务,服务启动后2分钟内内存开始异常增加,之后变为缓慢增加。
开始检查日志,和相应上下文的服务过程。逐一排查,是否存在文件流释放问题。过了半小时系统又挂掉,对比上下文日志,无关联。copy一个服务在模拟环境运行,发现无服务执行也会同样增加内存,会逐步增加。
开始分析运行进程,其中涉及的内容有top、jmap、jstack,查看相应堆栈信息后,无发现特殊内容。
又使用第三方的阿里提供的Arthas。诊断内容发现堆栈内存占用过高,但是无法分析具体是哪些内容造成的,造成原因的open files 经检查过程中最大为2w+,但是最大设置的未6w+。为了大致分析判断哪些内容占用了内存,使用jmap导出了dump文件,使用本地的jvm分析工具进行分析判断,查看得出byte[]类型占用了一半内存且持续增加。随机检查系统中的服务,判断具体类型关联性,将文件交互排除后,无其他进展。

Arthas 是 Alibaba 开源的 Java 诊断工具。

解决过程B

为了进一步排除系统服务问题,将日志设置为最低级别all,在服务进行到2分钟后,开始出现异常反应,异常信息为请求到其他系统的服务超时且每秒中多次请求,日志级别为error,原此服务的日志级别为off(因特殊原因),请求的连接数持续正常,释放不足,导致内存为保持连接持续增加消耗,最终导致Too many open files异常信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值