cpu100%问题定位
程序中写一个死循环
thread = new Thread(() -> {
while (true) {
}
});
thread.start();
top -c显示进程运行详细列表
键入P可以按照cpu使用率排序
可以用top -p pid定位到当前进程
按H,切换到线程,这时显示的是一个进程的线程信息表,这时左上角显示的Threads
也可以不定位到当前进程,直接按H切换到线程,显示系统中所有线程
可以看到线程id为1626,把线程id转换成16进制
[xuhaixing@xhx190 ~]$ printf "%x\n" 1626
65a
进程id为1611,本机进程id与vmid相同,然后用jstack命令可以查看到运行的线程的信息
[xuhaixing@xhx190 ~]$ jstack 1611
xxxx
"Thread-2" #14 prio=5 os_prio=0 tid=0x00007f440caf0800 nid=0x65a runnable [0x00007f43f5925000]
java.lang.Thread.State: RUNNABLE
at com.xhx.spring.springoom.SpringOomApplication.lambda$afterPropertiesSet$0(SpringOomApplication.java:33)
at com.xhx.spring.springoom.SpringOomApplication$$Lambda$363/1477657879.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
"container-0" #13 prio=5 os_prio=0 tid=0x00007f440c8f4800 nid=0x659 waiting on condition [0x00007f43f651f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:570)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer$1.run(TomcatWebServer.java:181)
xxxx
实时内容请关注微信公众号,公众号与博客同时更新:程序员星星