架構(gòu)出錯時如何進(jìn)行查詢

本篇內(nèi)容介紹了“架構(gòu)出錯時如何進(jìn)行查詢”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)秉承專業(yè)、誠信、服務(wù)、進(jìn)取的價值觀,堅持以客戶為中心、客戶至上的服務(wù)理念,以“關(guān)注企業(yè)需求,實現(xiàn)企業(yè)價值”為導(dǎo)向,努力為企業(yè)提供全面優(yōu)質(zhì)的互聯(lián)網(wǎng)應(yīng)用服務(wù)。服務(wù)包括空間域名、虛擬主機(jī)、企業(yè)郵箱、網(wǎng)站建設(shè)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)營銷解決方案和咨詢服務(wù),以幫助企業(yè)客戶應(yīng)用互聯(lián)網(wǎng)。

1. 病號是誰(WHO)?

拿出控制臺診斷儀器,輸入 top 命令一探究竟。我勒個去,不看不知道一看嚇一跳,PID 為 1878 的病號,CPU 占用居然 200% 多。

架構(gòu)出錯時如何進(jìn)行查詢

問題算是定位到了,但是 PID 為 1878 的病號到底是誰,難道真是昨天上線的看門狗 ?

雖然大劉久經(jīng)職場,但是排查生產(chǎn)問題時,內(nèi)心還是比較忐忑,畢竟這是生產(chǎn)環(huán)境。

說時遲那時快,只見大劉一個命令輸入:

ps -ef | grep 1878

定睛一看,原來是放屁瞅別人,短信服務(wù)自己在作祟,和看門狗沒關(guān)系,大劉心里一下子平緩了不少。

鍋找到了主兒,其實這個時候大劉完全可以把這個問題甩給短信開發(fā)團(tuán)隊,但是大劉最喜歡做的不是甩鍋,而是打破砂鍋刨到底。

2. 病號哪里出了問題(WHERE)?

為什么 1878 號病人占用 CPU 會這么高呢?

只見黑乎乎的控制臺診斷儀器上,大劉熟練的輸入:

jstack -l 1878 >> 1878號病歷.log

這樣便得到一份 1878 號病人的病歷詳情單,一會兒用得上。

到底 1878 號病人的哪個部位出了問題呢?

話沒說完,只見大劉又在控制臺診斷儀器上,輸入一個:

top -Hp 1878

白板黑字,把 1878 號病人的器官信息全部列了出來。

架構(gòu)出錯時如何進(jìn)行查詢

看到結(jié)果,甚是一驚,PID 代號為 8721 的器官占用 CPU 100% 多。

疑惑油然而生,這個 PID 代號 為 8721 的器官是啥,是頭、是眼睛、還是胳膊腿呢?這些器官展示的 PID 列都是昵稱,都這么善于偽裝,如何揭露它的真面目呢?

還好大劉有高招,借助照妖鏡算法,熟練的輸入:

printf "%x\n" 8721

果真使得代號為 8721 的器官,現(xiàn)了真身,真實身份居然是 2211 的呼吸道,怪不得病號一直氣喘吁吁,上氣不接下氣。

架構(gòu)出錯時如何進(jìn)行查詢

到這一步還無法對癥下藥啊,還需要進(jìn)一步確診 2211 的呼吸道到底出了什么幺蛾子,導(dǎo)致 1878 號病人一直氣喘吁吁,上氣不接下氣?

只見黑乎乎的控制臺診斷儀器上,大劉再次飛一般的在輸入:

grep 2211 -A20 1878號病歷.log

診斷結(jié)果隨之顯示在診斷儀器上。

架構(gòu)出錯時如何進(jìn)行查詢

曾經(jīng)背了很多鍋的大劉,看到診斷結(jié)果心里樂了一下,一眼就看出是高并發(fā)情況下用了 HashMap 的問題(請大家們自行尋找谷歌、百度,就不在此深入展開啦),終于撥開云霧見青天。

3. 如何對癥下藥( HOW )?

在大劉行云流水沒有一絲一毫的拖泥帶水般的神操作下,1878 號病人的診斷也就結(jié)束了,這個鍋就徹底被打破了。

術(shù)業(yè)有專攻,大劉就可以鄭重的告訴短信開發(fā)同事具體原因了,捉得病根,開發(fā)同事也就可以對癥下藥啦。

大劉這套行走江湖的診斷問題方式你 get 到了沒?大劉自己簡單概括為 2W1H 三板斧:病號是誰、病號哪里出了問題、對癥下藥。

1、病號是誰?(WHO)

  • 第一步:采用 top 命令,找出 CPU 占用最高的病號 PID ;

  • 第二步:通過 ps -ef | grep PID 查看病號對應(yīng)的真實身份。

2、病號哪里出了問題?(WHERE)

  • 第一步:采用 jstack -l PID >> PID.log 獲取病號的各器官信息的病歷單;

  • 第二步:采用 top -Hp PID 拿到占用 CPU 最高的器官昵稱 PID ;

  • 第三步:采用 printf "%x\n" PID 根據(jù)器官昵稱 PID 的拿到器官真實身份 TID ;

  • 第四步:采用 grep TID -A20 pid.log 根據(jù) TID 去病歷單中匹配,確定是哪出了問題。

3、捉得病根、便可拿出醫(yī)藥箱,對癥下藥啦。(HOW)

作為程序猿,工作中難免會遇到不少類似這樣的問題。面對問題,你如果像無頭蒼蠅一樣亂撞,撞得頭破血流依然不知道緣由,在背鍋即將成為現(xiàn)實時,那就不妨試試2W1H 三板斧的診斷方式,說不定會幫你快速定位、解決線上問題,畢竟快速的解決生產(chǎn)問題會把損失降到最低。

“架構(gòu)出錯時如何進(jìn)行查詢”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

文章題目:架構(gòu)出錯時如何進(jìn)行查詢
分享網(wǎng)址:http://muchs.cn/article38/ihshpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、網(wǎng)站維護(hù)微信小程序、面包屑導(dǎo)航用戶體驗、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)