一個cpu占用率高的小問題

? ? ? 早上醒來便被系統(tǒng)報警短信施加了不小的壓力,系統(tǒng)夜間多次報警起意,cpu使用率過高(超過90%)说贝,昨天晚上確實是上線了一個計算類的需求,不過算法相對簡單(簡單來說就是取兩個字符串的公共子串践惑,然后做一些處理),主觀上認為不會因為這導致cpu爆掉腹泌,但是問題就是隨著這個需求出現(xiàn)的,肯定拖不了干系尔觉,哎凉袱,bug排查往往就是這樣,感覺某某地方不應該有問題侦铜,但是除了他又別無懷疑對象专甩。

火急火燎的趕到公司,先申請了幾臺服務器擴容泵额,緩解下壓力配深,(leader也建議先下掉這個接口携添,但是我觀察了這個接口的具體指標后嫁盲,預估先擴下容,能撐住烈掠,撐不住再下羞秤,再則,下掉后左敌,現(xiàn)象也會隨之消失瘾蛋,更不利于排查問題)

擴容后,cpu和內存矫限,都降到了可以接受的程度哺哼。

開始排查

1:單臺服務器qps很低佩抹,個位數(shù),可以放棄了取董。

2:想通過jstack看下棍苹,但是線上環(huán)境沒權限執(zhí)行這個命令,只能放棄

3:線下模擬茵汰,雖然感覺基本沒用枢里,畢竟上線之前,線下已經(jīng)測試了蹂午,但是死馬當作活馬醫(yī)栏豺,人總是會抱著萬一的想法的,不過現(xiàn)實并不理想豆胸,由于沒有跳出之前測試的思路奥洼,再次測試并沒有突破。

4:真正沒辦法了晚胡,就該冷靜下來了溉卓,既然公司不許線上環(huán)境使用jstack,jmap(確實也不應該允許使用搬泥,至少權限不能完全放開),那么肯定又其他路子可以通向羅馬桑寨,在公司群里吼了一嗓子后,發(fā)現(xiàn)果然是我太low忿檩,公司的監(jiān)控系統(tǒng)是可以看到堆棧信息的(隨便推薦下公司開源的監(jiān)控系統(tǒng)cat尉尾,github地址:https://github.com/dianping/cat

截圖如下:

根據(jù)堆棧信息,找到相關代碼燥透,截圖如下:


代碼相對來說簡單沙咏,但從代碼來看,除了list的遍歷寫的不太友好(具體就不細說了班套,都應該能看出來)之外肢藐,并看不出什么。算了吱韭,先把能看到的解決了吆豹,

但是上線之后,問題依舊的話豈不是很尷尬理盆,先測試下兩種方式的效果再說吧痘煤,簡單測試,發(fā)現(xiàn)list長度上萬之后猿规,效率才有差異衷快,果斷放棄這條線了(并不是不改,而是接著排查原因)姨俩,這樣基本就沒啥可排查了蘸拔,只有l(wèi)ist很大了可查了师郑,但是主觀上是不信的,再大能有多大呢调窍。按照之前的測試代碼debug之后呕乎,list長度并無問題,測試和線上不一樣的陨晶,也就只有入?yún)⒘蒜剩瑢α耍雲(yún)⑾扔ゾ€上log中找了cpu報警時的入?yún)⑹簦辛咙c,比測試環(huán)境長很多褐耳,好歹有可測的地方了诈闺,debug之后,果然铃芦,這個入?yún)⒀拍鳎樘幍膌ist的size竟然有將近7千,其中絕大部分都是空刃滓,后面就好定位了仁烹,算法邏輯有問題,在入?yún)⑤^長的情況下咧虎,很容易暴漏出來(這個需求的場景中卓缰,一把都很短,自測也確實不夠全面)砰诵,修復之后征唬,cpu降至個位數(shù),搞定茁彭。

回頭來看总寒,問題本身很簡單,但是前后排查缺花了近2個小時理肺,讓自己長個急性摄闸,留個爪

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哲嘲,隨后出現(xiàn)的幾起案子贪薪,更是在濱河造成了極大的恐慌,老刑警劉巖眠副,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異竣稽,居然都是意外死亡囱怕,警方通過查閱死者的電腦和手機霍弹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娃弓,“玉大人典格,你說我怎么就攤上這事√ù裕” “怎么了耍缴?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長挽霉。 經(jīng)常有香客問我防嗡,道長,這世上最難降的妖魔是什么侠坎? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任蚁趁,我火速辦了婚禮,結果婚禮上实胸,老公的妹妹穿的比我還像新娘他嫡。我一直安慰自己,他們只是感情好庐完,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布钢属。 她就那樣靜靜地躺著,像睡著了一般门躯。 火紅的嫁衣襯著肌膚如雪署咽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天生音,我揣著相機與錄音宁否,去河邊找鬼。 笑死缀遍,一個胖子當著我的面吹牛慕匠,可吹牛的內容都是我干的。 我是一名探鬼主播域醇,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼台谊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了譬挚?” 一聲冷哼從身側響起锅铅,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎减宣,沒想到半個月后盐须,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡漆腌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年贼邓,在試婚紗的時候發(fā)現(xiàn)自己被綠了阶冈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡塑径,死狀恐怖女坑,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情统舀,我是刑警寧澤匆骗,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站誉简,受9級特大地震影響碉就,放射性物質發(fā)生泄漏。R本人自食惡果不足惜描融,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一铝噩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窿克,春花似錦骏庸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至只损,卻和暖如春一姿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跃惫。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工叮叹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爆存。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓蛉顽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親先较。 傳聞我的和親對象是個殘疾皇子携冤,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內容