通過IO HANG診斷并排查磁盤繁忙問題
當您往磁盤的所在目錄讀寫文件或?qū)Υ疟P有IO訪問行為時,如果磁盤出現(xiàn)卡死或幾秒、幾十秒、甚至分鐘的卡頓,則推薦您通過IO HANG診斷并排查磁盤。
前提條件
OS監(jiān)控與診斷處于公測階段,請提交工單申請加入白名單。
背景信息
IO HANG的現(xiàn)象與危害
由于等待資源,IO路徑可能會存在夯的可能。從業(yè)務(wù)穩(wěn)定性角度來看,對于有IO訪問需求的業(yè)務(wù)進程,IO HANG可能會引起進程長期阻塞,且在IO路徑恢復(fù)之前,都無法對外提供服務(wù)。從系統(tǒng)穩(wěn)定性角度來看,IO HANG可能會引起大量的進程進入等待狀態(tài),導(dǎo)致系統(tǒng)高負載,甚至系統(tǒng)夯住,shell命令無法執(zhí)行,機器無法登錄,最終必須重啟系統(tǒng)。
IO HANG診斷的作用
IO HANG診斷可用于檢測當前系統(tǒng)中的IO HANG事件并確定問題邊界,即是磁盤原因,還是OS原因,為進一步的根因分析給出指導(dǎo)意見。
IO HANG診斷的優(yōu)勢
IO HANG診斷的輸出信息準確且結(jié)果直觀,即使您不具備內(nèi)核IO子系統(tǒng)知識也能快速上手。
IO HANG診斷主要聚焦在檢測系統(tǒng)中是否存在IO HANG問題并對問題進行定界,同時診斷功能會進一步幫助您縮小排查范圍,將問題原因縮小到某一塊流程上,并且給出一些關(guān)鍵的數(shù)據(jù)指標來輔助您進行根因分析。
使用限制
診斷中心單次最多支持診斷5個實例。
步驟一:查看IO監(jiān)控
前提條件:請確保您已開啟目標主機的SysOM插件。具體操作,請參見開啟SysOM插件。
先通過IO監(jiān)控,識別出IO HANG異常,再進行IO HANG診斷。
登錄云監(jiān)控控制臺。
在左側(cè)導(dǎo)航欄,選擇
。在監(jiān)控中心,先選擇目標主機,再單擊IO監(jiān)控頁簽,然后查看其監(jiān)控指標每分鐘io hang次數(shù)和IO繁忙度的監(jiān)控圖標。
以下現(xiàn)象,說明IO HANG異常:
每分鐘io hang次數(shù)大于1。
在沒有任何IO的情況下,IO繁忙度持續(xù)100%。
步驟二:發(fā)起診斷
發(fā)起IO HANG診斷,并查看診斷結(jié)果,確定問題邊界。
在左側(cè)導(dǎo)航欄,選擇
。在診斷中心,先單擊IO診斷頁簽,再單擊IO HANG診斷頁簽,然后單擊發(fā)起診斷。
在IO HANG診斷對話框,選擇待診斷的實例,其他參數(shù)均保持默認值。
說明如果待診斷的實例未開啟SysOM插件,云監(jiān)控可以一鍵為該實例安裝SysOM插件,再執(zhí)行診斷操作。
單擊確定。
查看診斷結(jié)果。
當診斷任務(wù)的診斷狀態(tài)為診斷任務(wù)運行超時或診斷任務(wù)運行失敗時,您可以單擊其對應(yīng)操作列的查看失敗原因。
當診斷任務(wù)的診斷狀態(tài)為診斷任務(wù)運行成功時,您可以單擊其對應(yīng)操作列的查看診斷結(jié)果。
在IO HANG overview區(qū)域,如果Check Result顯示綠色字樣Normal且另外兩個參數(shù)均顯示0,則表示未出現(xiàn)IO HANG。
在IO HANG overview區(qū)域,如果Check Result顯示紅色字樣的Abnormal且另外兩個參數(shù)均有數(shù)值,則表示出現(xiàn)IO HANG。
在IO HANG overview區(qū)域,參數(shù)及其含義如下表所示。
參數(shù)
描述
Number of OS HANG
夯在OS中的IO數(shù),例如:9,表示有9個IO夯在OS中。
Number of Disk HANG
夯在磁盤中的IO數(shù),例如:1540,表示有1540個IO夯在磁盤中。
說明IO HANG診斷主要起到問題定界的作用,即檢測系統(tǒng)中是否存在IO HANG問題。如果存在IO HANG問題,則您需要先完成問題定界,即IO HANG是磁盤問題,還是OS問題,同時給出一些關(guān)鍵的數(shù)據(jù)指標來輔助專家做進一步的根因分析,具體問題如下:
如果Number of Disk HANG中的數(shù)值高,則說明是磁盤問題。
如果Number of OS HANG中的數(shù)值高,則說明是OS問題。
在More details of TOP 10 IO區(qū)域,只展示10個夯住時間最長的IO的詳細信息,單個IO的參數(shù)及其含義如下表所示。
參數(shù)
描述
comm
進程名稱。
abnormal
異常位置。
file
操作文件名稱。
iostate
IO狀態(tài)。
cpu
發(fā)出該IO的CPU編號。
pid
進程號。
time
檢測到IO事件的時間點。
sector
扇區(qū)號。
datalen
數(shù)據(jù)量。
iotype
IO類型。