CentOS下如何根据Dump文件分析线上问题

一、保存现场

1、记录系统整体资源使用情况,进程信息、线程信息

top -b -n 3 > top_process.txt

 CentOS下如何根据Dump文件分析线上问题_第1张图片

1. 统计部分:

重点关注参数: 2行 Tasks, 总进程数,运行的进行数,睡眠的进程数 停止的进程数 僵尸进程数

3行 %Cpu(s) us 用户空间CPU占用率 sy ; 内核空间CPU 占用率

4行 Mem 行 物理内存总量 空闲物理内存 已使用的物理内存 内核缓存使用量

1. 进程信息

各进程参数,重点关注列

PID COMMAD %Cpu %MEM

线程统计

top -H -b -n 3 > top_thread.txt

 CentOS下如何根据Dump文件分析线上问题_第2张图片

 2、保存tomcat/java 进程状态信息

pidstat -p 20157 1 3 -u -t ->pidstat.txt

 

20157 为进程号

 CentOS下如何根据Dump文件分析线上问题_第3张图片

3、保存线程堆栈信息

jstack -l 20157 -> jstack.txt

4、保存 堆快照

jmap -dump:format=b,file=/root/heap.hprof 20157

5、cpu 高时可能是GC 问题,GC 信息收集

jstat -gc 20157

jstat -gccause 20157


二、分析问题原因

1、根据上述1、2、3 点分析大概原因

2、使用ibm 工具分析thread stack

下载地址:

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c

 

3、使用MAT 工具分析JAVA HEAP(eclipse 插件安装)

http://www.eclipse.org/mat/


你可能感兴趣的:(JVM)