首先Xsehll鏈接上服務器:
top -c
然後
top -Hp 12703
一般CPU100%瘋狂GC,都是死循環的鍋,那怎麼排查呢?
先進服務器,用top -c 命令找出當前進程的運行列表
按一下 P 可以按照CPU使用率進行排序
顯示Java進程 PID 爲 12786的java進程消耗最高
12786是十進制的,我們需要轉換爲十六進制,轉換結果:31f2
接下來我們導出進程快照
jstack -l 12703 > ./12703.stack
再用grep查看一下線程在文件裏做了啥
cat 12703.stack |grep '31f2' -C 8
接下來找到我們的代碼
可以發現我們測試這個寫了個死循環
是不是就可以完美的解決這個問題啦!!!!!!!!!!!!!
當然我們也可以把快照拿出來分析,這就看你需要怎麼處理啦