服務器 cpu資源佔用高,服務器CPU負載過高,如何定位問題

top:Linux 命令。可以實時查看各個進程的 CPU 使用情況。也可以查看最近一段時間的 CPU 使用情況。默認按 CPU 使用率排序。

ps:Linux 命令。強大的進程狀態監控命令。可以查看進程以及進程中線程的當前 CPU 使用情況。屬於當前狀態的採樣數據。

jstack:Java 提供的命令。可以查看某個進程的當前線程棧運行情況。根據這個命令的輸出可以定位某個進程的所有線程的當前運行狀態、運行代碼,以及是否死鎖等等。

pstack:Linux 命令。可以查看某個進程的當前線程棧運行情況。


1.使用top命令找出CPU佔比最高的
2.使用ps -ef或者jps進一步定位 示例:jps -l 或 ps -ef | grep java|grep -v grep
3.定位到具體線程或者代碼
ps -mp 進程 -o THREAD,tid,time
-m 顯示所有的線程
-p pid進程使用cpu的時間
-o 該參數後是用戶自定義格式
4.將需要的線程ID轉換爲16進制格式(英文小寫格式) printf “%x\n” 有問題的線程ID
5.jstack 進程ID | grep tid(16進制線程ID小寫英文) -A60


 

linux如何查看進程

 

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