如何定位占用cpu過高的執行緒

2022-08-22 08:54:14 字數 513 閱讀 8932

如何定位占用cpu過高的執行緒

近來發現平台應用響應越來越慢,通過top命令發現,cpu佔用率越來越高

1. 首先根據top命令,發現占用cpu最高的程序pid:3075.

通過ps aux | grep pid命令,進一步檢視當前程序的具體資訊。

2. 顯示當前程序下的所有執行緒列表

找到耗時最高的執行緒tid,並將其執行緒id轉換為16進製制格式:

printf "%x\n" tid

3. 列印執行緒的堆疊資訊,thread dump

jstack pid |grep tid -a 30

進一步分析堆疊資訊,就會定位到問題所在

實戰CPU占用過高問題定位

網上學習了cpu 占用過高如何快速定位的方法後,根據現有的專案實戰一次。廢話不多說了,直接展示定位的問題的詳細步驟。服務部署在linux伺服器,定位問題的方法,主要也是使用相關的linux命令與jdk檢視堆疊,gc日誌等相關命令。1.問題發現 top 檢視當前伺服器各個程序執行占用cpu,記憶體等情...

mysql 占用cpu過高

mysql 最近因使用者訪問量的增大和資料的增多,導致占用cpu過大,甚至可達100 所以,在網上找了些資料,進行cpu的優化 1.修改my.ini的 tmp table size 原來的 tmp table size 竟然為18m 汗.將其值修改為200m tmp table size 200m2...

linux 分析程序占用CPU過高

重點是檢視程序的執行緒中,哪個執行緒占用cpu過高,然後用gdb附加到程序,除錯執行緒,看是否有死迴圈或者死鎖等問題,步驟如下 1 先用ps grep找出該死的程序pid,比如 1706 gdb attach 到程序號碼 1706 仍然在gdb中 info threads 結果大致如下 gdb in...