如何定位占用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...