点击上方“Java知音”,选择“置顶公众号”
技术文章第一时间送达!
作者:MnameHZJ
my.oschina.net/u/1420452/blog/2245304
如何排查java应用中CPU使用率高或内存占用高的问题?这类问题的排查步骤基本通用的。现在通过一个具体的例子来说明。
问题描述
最近有个线上项目每天0点过后CPU使用率会上升至200%到300%。
排查过程
本节内容是对排查过程的复盘,过程记录会比较详细。如果想知道具体的命令操作,可以直接看总结部分内容。
1)当CPU再次暴涨的时候,首先我们可以通过top -c查看CPU使用率高的进程的PID。
2)然后使用top -p PID -H查看CPU使用率高的线程信息。如果CPU使用率高的线程是比较固定的,那么我们记下对应线程的PID。 执行top -p 14639 -H得出下图结果:
记下4个线程的PID: 14643、14644、14641、14642
3)接下来通过jstack PID > xxx.log输出java应用当前堆栈信息到文件。
4)第2步中&