linux下cpu飆高原因排查過(guò)程詳解
前言
cpu飆高是很常見(jiàn)的線(xiàn)上問(wèn)題,這都不會(huì)的話(huà),屬實(shí)有點(diǎn)拉跨

兄弟萌不用慌,來(lái)我教你一套連招
開(kāi)始
先來(lái)個(gè)項(xiàng)目,整個(gè)api,到時(shí)候我們請(qǐng)求/cpu/{count}就能手動(dòng)拉高cpu,機(jī)智鬼~
@GetMapping("/cpu/{count}")
public long cpuTest(@PathVariable("count") long count) {
long number = 0;
for (int i = 0; i < count; i++) {
number++;
}
return number;
}
打包、上傳、啟動(dòng)

跑起來(lái)了,記住這個(gè)進(jìn)程號(hào) 14849
我們先top看看正常情況下的cpu使用率

很合理
模擬線(xiàn)上cpu飆高
我們請(qǐng)求/cpu/{100000000000}接口,把cpu拉起來(lái),同時(shí)top觀(guān)察cpu使用率

直接干到98%,很nice
ok入戲,我們現(xiàn)在線(xiàn)上出問(wèn)題了,cpu一直很高,老大叫你找找原因,開(kāi)始支棱起來(lái)
其實(shí)我們現(xiàn)在已經(jīng)知道是誰(shuí)把cpu拉高了,但還不夠細(xì),只知道哪個(gè)項(xiàng)目出的問(wèn)題遠(yuǎn)遠(yuǎn)不夠,我們應(yīng)該找到罪魁禍?zhǔn)祝降资悄膫€(gè)方法的多少行導(dǎo)致的問(wèn)題,這才能讓老大直呼內(nèi)行
步驟
jps+top 定位應(yīng)用進(jìn)程
pidtop -Hp {pid}找到線(xiàn)程tid
將 tid 轉(zhuǎn)換成十六進(jìn)制 printf “%x\n” {tid}
打印堆棧信息 jstack
過(guò)濾出我們想要的
排查
進(jìn)程id已經(jīng)確定是 14849,下一步我們要找到是哪個(gè)線(xiàn)程搞的鬼
top -Hp 14849

很明顯是這個(gè)14908搞的鬼
轉(zhuǎn)十六進(jìn)制

打印堆棧

堆棧信息顯示是TestController里面的第20行出的幺蛾子,我們進(jìn)入代碼驗(yàn)證

問(wèn)題不大
破案
撒花
到此這篇關(guān)于linux下cpu飆高原因排查過(guò)程詳解的文章就介紹到這了,更多相關(guān)linux cpu飆高原因排查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在linux系統(tǒng)下安裝兩個(gè)nginx的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇在linux系統(tǒng)下安裝兩個(gè)nginx的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
linux服務(wù)器磁盤(pán)滿(mǎn)了的三種解決方案
這篇文章主要給大家介紹了linux服務(wù)器磁盤(pán)滿(mǎn)了的三種解決方案,文章通過(guò)圖文結(jié)合的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-04-04
Linux下IP設(shè)置腳本的實(shí)例及遇到問(wèn)題解決辦法
這篇文章主要介紹了Linux下IP設(shè)置腳本的實(shí)例及遇到問(wèn)題解決辦法的相關(guān)資料,需要的朋友可以參考下2017-07-07
搭建一個(gè)大型網(wǎng)站架構(gòu)的實(shí)驗(yàn)環(huán)境(Squid緩存服務(wù)器篇)
Squid是一個(gè)高性能的代理緩沖服務(wù)器,也許你已經(jīng)用過(guò)Windows平臺(tái)下的WinGate,MS Proxy Server等功能類(lèi)似的產(chǎn)品。2009-07-07
Linux下rpm、yum和源碼三種安裝方式詳細(xì)介紹
這篇文章主要介紹了Linux下rpm、yum和源碼三種安裝方式詳細(xì)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Ubuntu虛擬機(jī)開(kāi)機(jī)黑屏系列解決方法總結(jié)
ubuntu虛擬機(jī)玩的好好的,突然不知怎么著圖形界面就卡住了,等待了好一會(huì)也不見(jiàn)恢復(fù),沒(méi)轍只能考慮強(qiáng)行關(guān)斷虛擬機(jī),一關(guān)掉虛擬機(jī)又完全卡死了,緊接著重啟vmware,發(fā)現(xiàn)一進(jìn)入就是黑屏,所以本文總結(jié)了Ubuntu虛擬機(jī)開(kāi)機(jī)黑屏系列解決方法,需要的朋友可以參考下2024-07-07
linux中設(shè)置nexus開(kāi)機(jī)自啟動(dòng)的方法
這篇文章主要介紹了linux中設(shè)置nexus開(kāi)機(jī)自啟動(dòng)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02
Linux上也有10個(gè)流行的Windows應(yīng)用程序
今天小編就為大家分享一篇關(guān)于在linux上也流行的windows程序,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09

