发布于 4年前

Java定位代码导致的CPU过高问题

相信大家肯定遇到过java程序cpu一直居高不下的情况,那么我来简单介绍在linux系统下如何定位java进程cpu过高的代码位置。

  • 首先,使用命令top,找到cpu过高的pid;
  • 接着,使用top -Hp pid 找到对应的线程 tid;
  • 我们知道jstack可以查看当前java进程的堆栈状态;由于线程在堆栈信息的使用16进制的。那么,printf "%x" tid 可以获取16进制的 tid16。
  • 最后使用 jstack pid |grep -A 10 tid16 ,根据情况调整行数后,就可以看到该线程是执行的代码。
©2020 edoou.com   京ICP备16001874号-3