最近一个服务突然出现 OutOfMemoryError,两台服务因为这个原因挂掉了,一直在full gc.还因为这个问题我们小组吃了一个线上故障.很是纳闷,一直运行的好好的,怎么突然就不行了呢... 配置了一个  -XX:+HeapDumpOnOutOfMemoryError(该参数作用是在第一次发生OOM错误时候会打印dump内存信息),便开始通过dump文件开始查找问题.   项目各项环境参数: 项目使用dubbo框架,dubbo线程池配置500 项目内存配置2G,old区1.5G 项目使用…
前言:本以为(OutOfMemoryError)OOM问题会离我们很远,但在一次生产上线灰度的过程中就出现了Java.Lang.OutOfMemoryError:Java heap space异常,通过对线上日志的查看,最终定位到ArrayList#addAll方法中,出现这个问题的原因是:由于历史原因有个接口的响应时间经常超时,所以笔者对其进行了优化,之前使用的是ArrayList#add方法,笔者通过一系列修改后将add方法修改为了addAll方法,导致内存溢出.但具体是怎样产生的呢,下面对…
nmap扫描端口导致线上大量Java服务FullGC甚至OOM 最近公司遇到了一次诡异的线上FullGC保障,多个服务几乎所有的实例集中报FullGC,个别实例甚至出现了OOM,直接被docker杀掉. 观察报警服务的log,均有大量的此log *TNonblockingServer [ERROR] Read a frame size of ****, which is bigger than the maximum allowable buffer size for ALL connectio…
转贴:http://my.oschina.net/flashsword/blog/205266 本文是一次线上OOM故障排查的经过,内容比较基础但是真实,主要是记录一下,没有OOM排查经验的同学也可以参考. 现象 我们之前有一个计算作业.最近经常出现不稳定,无法正常响应的情况.具体表现是:各种连接超时,从mysql.mongodb和zookeeper到netty,能超时的都超时过了.其他看不到太多有效的异常. 所以我们首先怀疑的是网络问题,打电话跟运维确认,运维说网络问题的可能性几乎为0,因为我…
通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的性能品质保驾护航. 应用程序稳定性是影响用户体验及留存的关键因素 对于移动App的开发者来说,最基础也是最关注的问题就是应用程序的稳定性.而崩溃问题是影响稳定性的重要因素, 包括NSException.Signal.卡死.OOM(Out Of Memory)等问题类型.其中,OOM问题是随着业务的迭…
又一次线上OOM排查经过 最近线上一个服务又出现了频繁Full GC的情况,导致提供的业务经常超时.问题出现非常不稳定,经过两周的时候,终于又捕捉到了一次Full GC,于是联系运维做Heap Dump之后,经过一系列分析,终于解决问题.这次的问题稍微复杂一点,但是也比较有代表性,用到了VisualVM和MAT两个工具,继续记录如下. 现象 这次使用公司的CAT监控平台看到的内存表现如下: 可以看到,具体表现是: 在很长一段时间内(数个小时),New GC比较频繁,Full GC较少(一小时个位…
今天第二篇采坑了... ... 现场因为处理太急促没有保留,而且是一旁协助,没有收集到所有信息实在是有些遗憾...只能靠记忆回想一些细节 情况是一台服务器一启动就开始full gc,短短1分钟可以有几十次的full gc. 主要几个配置参数为-Xmx2g -XX:NewRatio=3(CMS相关和其他的和这次无关不列了) 很简单的参数. 下意识dump了heap,结果并没什么特别明显的问题. 在想是不是内存不够,加到3g还是一样的问题. 那似乎只能看是不是业务代码有内存泄漏了. 用jmap -h…
某线上应用在进行查询结果导出Excel时,大概率出现持续的FullGC.解决这个问题时,记录了一下整个的流程,也可以作为一般性的FullGC问题排查指导. 1. 生成dump文件 为了定位FullGC的原因,首先需要获取heap dump文件,看下发生FullGC时堆内存的分配情况,定位可能出现问题的地方. 1. 1 通过JVM参数自动生成 可以在JVM参数中设置-XX:+ HeapDumpBeforeFullGC参数. 建议动态增加这个参数,直接在线上镜像中增加一方面是要重新打包发布,另一方面…
大家好,我是鸭血粉丝(大家会亲切的喊我 「阿粉」),是一位喜欢吃鸭血粉丝的程序员,回想起之前线上出现 OOM 的场景,毕竟当时是第一次遇到这么 紧脏 的大事,要好好记录下来. 1 事情回顾 在某次周五,通过 Grafana 监控,发现线上环境突然出现CPU和内存飙升的情况: 但是看到网络输出和输入流量都不是很高,所以网站被别人攻击的概率不高,后来其它服务器的负荷居高不下. 阿粉先 dump 下当时的堆栈信息,保留现场,接着进行了简单的分析,为了稳住用户,通知运维一台一台服务器进行重新启动,让大家…
一.问题情况 最近用户反映系统响应越来越慢,而且不是偶发性的慢.根据后台日志,可以看到系统已经有oom现象. 根据jdk自带的jconsole工具,可以监视到系统处于堵塞时期.cup占满,活动线程数持续增加,堆内存接近峰值. 二.分析情况 使用jconsole分析: 找到jdk安装路径,点击bin目录下的jconsole.exe,运行.…