很多人觉得性能分析难,其实你掌握了技巧后就不难了。
心态、思路、分层、猜想等等在分析中起了很大作用,相反技术只位居区区第二,甚至第三而已,可惜明白的人太少
=============================
监控发现的现象:
tps抖动大
log里的超时很多
偶然有500错误
接着,用jconsole看下内存(java的东东头一个想到内存),如下图
发现内存使用不正常,FGC非常频繁,差不多5分钟进行一次,而且内存回收不彻底,大概猜测可能是内存问题,导致了一系列不稳定的现象。
那么问题来了,谁这么占内存?
然后jstat命令查看系统GC情况,如下图
果然是内存回收不彻底,fgc持续近5s,验证了我们的猜测,那么接下来就要找是哪个混蛋造成的了。
继续,jmap找,如下图
看到这三个混蛋了吧?可能就是他们导致的哦
最后,借助mat来分析,如下图
看到了吧,就是他们三个啊,赶紧找开发一起看看,分析下代码吧
so,是不是也不难呢?关键还是思路。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/191001.html