cpu100%問題定位

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

實時內容請關注微信公衆號,公衆號與博客同時更新:程序員星星
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章