综合技术----线上环境内存暴涨或者CPU暴增问题排查

最近线上环境系统常常出现内存暴涨的现象,前段时间常常出现数据库服务器CPU暴增(常常100%)的状况。通过逐步排查,最终解决问题,先将解决过程记录下来。html

解决内存暴涨步骤

1.排查报错日志
运维反应内存涨的快,咱们第一反应确定是拿到日志,进行分析,发现不少GC,初步判定内存泄漏
2.查看tomcat线程
命令:ps -ef|grep tomcat
3.查看该pid下线程占用状况
命令:top -Hp [pid]
会发现前几个线程(eg:pid一、pid2等)占用资源比较多,几乎占用了整个cpu资源,将pid一、pid2等转换成16进制pid1_1六、pid2_16.
3.1 线上问题比较紧急时,能够先杀掉这些线程,而后在逐步排查
命令:kill -9 [pid]
4.下载当前java线程栈,我公司路径/usr/java/jdk1.7.0_80/bin/jstack -l [pid] >/webtv/gc.txt
5.分析第4步中的线程栈,排查步骤3中的pid1_1六、pid2_16等线程具体缘由
6.若是前面的步骤还不能解决问题,则进行以下一步,dump该pid下java堆数据,/usr/java/jdk1.7.0_80/bin/jmap -dump:format=b,file=/webtv/gc.hprof [pid
7.使用MAT工具(自行百度下载)加载如上堆文件,而后进行分析。java

参考网址:http://www.javashuo.com/article/p-vadbdxdh-hm.htmlweb

相关文章
相关标签/搜索