linux分析排查内存持续升高原因

CPU100%那么一定有线程在占用系统资源, 找出哪个进程cpu高(top),该进程中的哪个线程cpu高(top -Hp) , 导出该线程的堆栈 (jstack) , 查找哪个方法(栈帧)消耗时间 (jstack) 工作线程占比高 | 垃圾回收线程占比高 。

(1)通过top找到占用率高的进程:top

(2)通过top -Hp pid找到占用CPU高的线程ID:top -Hp pid

(3)把十进制的线程TID转化为十六进制TID:printf '%x\n' TID

(4)通过命令jstack 找到有问题的代码:jstack pid | grep 十六进制TID -A 30

或者执行

jstack -l pid > stack.log //将进程pid的堆栈信息打印存储到stack.log文件中去分析


版权声明:本文为FANTASY522272820原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。