Skip to content
Go back

linux中分析CPU占用情况

Published:  at  08:33 PM

查找占用cpu高的进程

top 命令参数
H: 查看线程信息
M(交互模式):根据驻留内存大小进行排序;
P(交互模式):根据CPU使用百分比大小进行排序;

top # 交互模式下按P键(ctrl + p) 查看cpu占用

查找该进程中占用CPU高的线程

ps 命令参数
-H:显示树状结构,表示程序间的相互关系。
e:选择所有进程
o: 输出格式

ps H -eo pid,tid,%cpu | grep <pid>

或者

top -Hp <pid>

使用jstack查找相应线程

jstack <pid> | grep <tid:hex-format>

结果含”VM Thread”, 表示为GC线程
其他的则定位源码进行排查

如果是Full GC次数过多

使用jmap导出dump文件

jmap -dump:format=b,file=<filename> <pid>

如果程序直接崩溃,则分析 jvm options指定的dump转储文件

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=C:/Users/nb/jvm/dump/file.hprof

分析转储文件,定位异常位置

常见的CPU占用过高的情况


Suggest Changes

Previous Post
Kotlin文法
Next Post
ThreadPoolExecutor的重要特性和概念