線上機(jī)器cpu占用率100%問題排查

cpu

cpu占用率高,一方面可能是因?yàn)椋绦蚴怯?jì)算密集性的。比如大量的請(qǐng)求過來,每個(gè)請(qǐng)求有大量的正則計(jì)算,很計(jì)算的關(guān)聯(lián)表排序。
還有代碼中有死循環(huán)會(huì)導(dǎo)致cpu負(fù)載飆高

定位問題代碼位置的步驟

  1. cpu負(fù)載高,首先會(huì)通過監(jiān)控告知到我們
  2. top 指令查處cpu占用率高的進(jìn)程pid
  3. ps -ef | grep pid 看出來是什么服務(wù)
  4. ps -Hp pid -o THREAD,tid,time 查看該進(jìn)程下哪個(gè)線程占用率高
    這步是為了在日志中過濾,線程參數(shù)tid
  5. printf "%x\n" 轉(zhuǎn)換tid為16進(jìn)制(dump日志里邊線程號(hào)是16進(jìn)制)
  6. jstack pid | grep tid -A 30 用jvm的線程堆棧信息指令dump日志,在日志中過濾此線程id的相關(guān)日志,定位代碼位置。

參考引用:http://www.blogjava.net/hankchen/archive/2012/05/09/377735.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容