在工作中,经常会碰到CPU占用100%的情况,那如何找到是那个线程占用了cpu呢?
1. top命令,找到cpu占用最高的进程
2. 查看该进程的线程, top -p <pid>
3. ctrl+H 切换到线程模式,找到占用cpu最高的线程。并把线程号转化为十六进制,printf "%x\n" <线程ID>
4. jstack <进程号>,把线程栈打印出来。找到对应的线程号就可以分析为什么线程会占用那么高的cpu了。
在工作中,经常会碰到CPU占用100%的情况,那如何找到是那个线程占用了cpu呢?
1. top命令,找到cpu占用最高的进程
2. 查看该进程的线程, top -p <pid>
3. ctrl+H 切换到线程模式,找到占用cpu最高的线程。并把线程号转化为十六进制,printf "%x\n" <线程ID>
4. jstack <进程号>,把线程栈打印出来。找到对应的线程号就可以分析为什么线程会占用那么高的cpu了。