我們使用jdk自帶的jstack來分析。當linux出現cpu被java程序消耗過高時,以下過程說不定可以幫上你的忙:
1、執行:top
查看高負載的進程
2、top -H -p 28973
查看高負載進程下的高負載線程
把線程號 28973 進行換算成16進制編號:print"%x\n" 28973 ->72d6
3、jstack 28973 >> log.txt
將線程堆棧信息保存為txt文檔
4、打開log.txt,find一下72d6
導出進程的堆棧日志,找到72d6 這個線程號
通過跟蹤代碼,確認有問題的代碼方法。