在實際的生產環(huán)境中,常常會遇到服務器CPU爆滿的問題,這時候,正確的排查方法,有助于快速的定位問題。
1、找到最耗CPU的進程
使用top命令查看系統(tǒng)總體的CPU和內存使用情況,以及各個進程的資源使用情況。
2、找到最耗CPU的線程
執(zhí)行top -Hp 63424,顯示一個進程的線程運行信息列表,鍵入P (大寫p),線程按照CPU使用率排序。
3、將線程PID轉化為16進制
執(zhí)行printf %x 63611,將線程PID轉成16進制,即0xf87b。因為堆棧里,線程id是用16進制表示的,這一步也可以使用其方式轉換。
4、查看線程的堆棧
這一步可以執(zhí)行的命令有:pstack/jstack/grep,這里演示其中一種即可。執(zhí)行
jstack 63424 | grep ‘f87b’ -C9 --color
打印進程堆棧,通過線程id,過濾得到線程堆棧。有時候系統(tǒng)并沒有記錄下日志,那這時候執(zhí)行 jstack 63424
,直接觀察線程的運行情況。
5、找到代碼,分析原因
文章來源:http://www.zghlxwxcb.cn/news/detail-457480.html
原因找到這里有一個死循環(huán)用于監(jiān)聽,導致該線程的一直占用一個CPU。文章來源地址http://www.zghlxwxcb.cn/news/detail-457480.html
到了這里,關于linux下cpu占用率100%怎么解決?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!