java Cpu占用過高處理

解決三板斧
轉(zhuǎn)三板斧

1、病號(hào)是誰(shuí)?(WHO)

第一步:采用 top 命令,找出 CPU 占用最高的病號(hào) PID ;

第二步:通過 ps -ef | grep PID 查看病號(hào)對(duì)應(yīng)的真實(shí)身份。

2、病號(hào)哪里出了問題?(WHERE)

第一步:采用 jstack -l ?PID >> PID.log ?獲取病號(hào)的各器官信息的病歷單;

第二步:采用 top -Hp PID 拿到占用 CPU 最高的器官昵稱 PID ;

ps:注意該命令只能在linux中使用,而在macOS上不能使用。因?yàn)閘inux將線程作為輕量級(jí)進(jìn)程也分配了pid,而macOS并沒有這么處理。

如果通過上述命令我們發(fā)現(xiàn)進(jìn)程中的某個(gè)線程指標(biāo)不正常,想重點(diǎn)關(guān)注,這時(shí)需要將線程的pid通過下面命令轉(zhuǎn)化為十六進(jìn)進(jìn)制,方便在線程快照信息中查找。

第三步:采用 printf "%x\n" PID ?根據(jù)器官昵稱 PID 的拿到器官真實(shí)身份 TID ;

第四步:采用 grep TID -A20 pid.log 根據(jù) TID 去病歷單中匹配,確定是哪出了問題。

3、捉得病根、便可拿出醫(yī)藥箱,對(duì)癥下藥啦。(HOW)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容