關注公眾號“AI碼師”領取2021最新面試資料一份
【主演】
運維小哥:小李
測驗小姐姐:小紅
開發人員:本色出演
【劇情】
在一個陽光明媚的清晨,原本還在睡夢中的我,被小李(運維小哥)的電話給驚醒了,
小李:線上告警出來一個問題,趕快看一下!
我:啥問題啊?
小李:xx服務器 現在cpu已經100%了,我剛才查了下是java行程占用的
我:好的,我來看下
我趕緊打開我的電腦,連接上了xx服務器,使用top 命令查了下,確實是java行程占用cpu最高,我大腦飛速旋轉想到:這幾天也沒有對程式做什么大改動啊,怎么會出現這個問題呢;
于是我把本地代碼切換到master分支,在本地跑了下發布到線上的代碼,觀察了一會,也沒看見cpu 占用很高啊,我就很納悶了,然后又上服務器看了下,java 行程占用cpu 還是比較高的,這是怎么回事呢?難道要拿出我的殺手锏?
接下來場面就比較血腥了,前方高能預警,系好安全帶
【高能預警】
我拿出了殺手锏,江湖上失傳已久的九陰真經(其實就是平時的筆記哈哈),在上面找了一些命令,然后就是接下來的場景了:
【步驟一】找到最耗cpu的行程
top

得到最占用CPU的行程為:39890
【步驟二】找到39890行程中最消耗cpu的執行緒
top -d 1 -Hp 39890

得到最耗CPU的行程為39900
【步驟二】將PID轉換為十六進制
我們拿到了行程PID為:39900
我們需要將它轉為十六進制,才能進行后續指令操作
printf “%x\n” 39900
得到結果:9bdc

【步驟三】列印當前執行緒的堆疊資訊,看看它到底在干嘛
jstack 39890 | grep ‘9bdc’ -C5

現在已經找到了執行緒的堆疊資訊,我看到了我自己寫的代碼,我用紅框標記出來了
【步驟四】帶著疑問去找代碼
我們根據堆疊資訊,直接在我們專案上定位到了那段代碼

我發現,這里有一個死回圈,我擦,忘記加休眠時間了,導致一直在死回圈跑呢,終于找到問題根源了,加上了休眠時間,然后本地測驗了下沒問題;
關鍵這是線上的問題,得要趕緊上線啊,但是也得測驗呢,我不得不撥通了小紅(測驗小姐姐)的電話,嘀,嘀,嘀,,我心里也在滴滴滴,這么早打電話給她讓她測驗,免不了被訓,我已經做好了心里準備了,咦,通了:
小紅:干啥?(測驗小姐姐總是這么彪悍)
我:有有有一個小小的線上問題(說話已經開始緊張了,生怕她開罵,哈哈),我已經改好了,需要你測驗下,然后抓緊上線,
小紅:今天不是周末么,還要測驗,讓不讓人睡覺了啊?
我:我我,,,,小姐姐,你長得這么可愛,美麗,端莊,溫柔,賢惠,就幫忙測驗下么,不然我這個月績效又要被扣了…
小紅:看你這么誠實,這次就勉強幫你測驗下吧,但是下次不要在周末給我發提測了,
我:好的呢,下…(對方已經掛斷了電話…)
哈哈,不管咋樣,現在已經沒我的事了,我合上電腦,又進入了夢鄉…
全劇終
經歷了一次線上bug排查,讓我膽戰心驚,不過這次也給我增加了不少經驗,畢竟重拾了 九陰正經,讓我內功又增強了;
后期會發布更多在實戰方面的作業經驗,與大家分享,希望大家能夠喜歡,現在我需要你們的一鍵三連,哈哈,下期見,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/254879.html
標籤:AI
