怎樣才能快速的定位到併發高是因爲磁盤io開銷大呢?能夠經過三種方式:node
Top能夠看到的cpu信息有:ios
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie數據庫
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si緩存
具體的解釋以下:性能優化
Tasks: 29 total 進程總數併發
1 running 正在運行的進程數app
28 sleeping 睡眠的進程數函數
0 stopped 中止的進程數工具
0 zombie 殭屍進程數佈局
Cpu(s):
0.3% us 用戶空間佔用CPU百分比
1.0% sy 內核空間佔用CPU百分比
0.0% ni 用戶進程空間內改變過優先級的進程佔用CPU百分比
98.7% id 空閒CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
0.0% wa 的百分比能夠大體的體現出當前的磁盤io請求是否頻繁。若是 wa的數量比較大,說明等待輸入輸出的的io比較多。
在介紹磁盤 I/O 監控命令前,咱們須要瞭解磁盤 I/O 性能監控的指標,以及每一個指標的所揭示的磁盤某方面的性能。磁盤 I/O 性能監控的指標主要包括:
指標 1:每秒 I/O 數(IOPS 或 tps)
對於磁盤來講,一次磁盤的連續讀或者連續寫稱爲一次磁盤 I/O, 磁盤的 IOPS 就是每秒磁盤連續讀次數和連續寫次數之和。當傳輸小塊不連續數據時,該指標有重要參考意義。
指標 2:吞吐量(Throughput)
指硬盤傳輸數據流的速度,傳輸數據爲讀出數據和寫入數據的和。其單位通常爲 Kbps, MB/s 等。當傳輸大塊不連續數據的數據,該指標有重要參考做用。
指標 3:平均 I/O 數據尺寸
平均 I/O 數據尺寸爲吞吐量除以 I/O 數目,該指標對揭示磁盤使用模式有重要意義。通常來講,若是平均 I/O 數據尺寸小於 32K,可認爲磁盤使用模式以隨機存取爲主;若是平均每次 I/O 數據尺寸大於 32K,可認爲磁盤使用模式以順序存取爲主。
指標 4:磁盤活動時間百分比(Utilization)
磁盤處於活動時間的百分比,即磁盤利用率,磁盤在數據傳輸和處理命令(如尋道)處於活動狀態。磁盤利用率與資源爭用程度成正比,與性能成反比。也就是說磁盤利用率越高,資源爭用就越嚴重,性能也就越差,響應時間就越長。通常來講,若是磁盤利用率超過 70%,應用進程將花費較長的時間等待 I/O 完成,由於絕大多數進程在等待過程當中將被阻塞或休眠。
指標 5:服務時間(Service Time)
指磁盤讀或寫操做執行的時間,包括尋道,旋轉時延,和數據傳輸等時間。其大小通常和磁盤性能有關,CPU/ 內存的負荷也會對其有影響,請求過多也會間接致使服務時間的增長。若是該值持續超過 20ms,通常可考慮會對上層應用產生影響。
指標 6:I/O 等待隊列長度(Queue Length)
指待處理的 I/O 請求的數目,若是 I/O 請求壓力持續超出磁盤處理能力,該值將增長。若是單塊磁盤的隊列長度持續超過 2,通常認爲該磁盤存在 I/O 性能問題。須要注意的是,若是該磁盤爲磁盤陣列虛擬的邏輯驅動器,須要再將該值除以組成這個邏輯驅動器的實際物理磁盤數目,以得到平均單塊硬盤的 I/O 等待隊列長度。
指標 7:等待時間(Wait Time)
指磁盤讀或寫操做等待執行的時間,即在隊列中排隊的時間。若是 I/O 請求持續超出磁盤處理能力,意味着來不及處理的 I/O 請求不得不在隊列中等待較長時間。
經過監控以上指標,並將這些指標數值與歷史數據,經驗數據以及磁盤標稱值對比,必要時結合 CPU、內存、交換分區的使用情況,不難發現磁盤 I/O 潛在或已經出現的問題。但若是避免和解決這些問題呢?這就須要利用到磁盤 I/O 性能優化方面的知識和技術。限於本文主題和篇幅,僅列出一些經常使用的優化方法供讀者參考:
Unix/Linux 提供了兩個很是有用的用於磁盤 I/O 性能監控的命令:iostat 和 sar。
iostat 命令主要經過觀察物理磁盤的活動時間以及他們的平均傳輸速度,監控系統輸入 / 輸出設備負載。根據 iostat 命令產生的報告,用戶可肯定一個系統配置是否平衡,並據此在物理磁盤與適配器之間更好地平衡輸入 / 輸出負載。iostat 工具的主要目的是經過監控磁盤的利用率,而探測到系統中的 I/O 瓶頸。不一樣操做系統命令格式輸出格式略有不一樣,管理員能夠經過查看用戶手冊來肯定它的用法。
sar 命令報告 CPU 的使用狀況,I/O 以及其它系統行爲。sar 命令能夠收集,報告以及保存系統行爲信息。以這種方式收集到的數據對於肯定系統的時間週期特徵和決定峯值使用時間是頗有用的。但要注意的是,sar 命令本身運行時會產生至關數量的讀寫,所以最好在沒有工做量的狀況下運行 sar 統計,看看 sar 對總的統計數字有多大的影響。
AIX 環境下,iostat 和 sar 位於文件集 bos.acct 中,是基本系統 (Base Operating System) 的一部分,在缺省安裝狀況下無需進行任何配置或任何額外包安裝。
Linux 環境下,iostat 和 sar 包含在 sysstat 包中。sysstat 是 Linux 系統中的經常使用工具包。不一樣的 Linux 系統或不一樣的硬件平臺,安裝包名字和具體命令可能會有微小差別。清單1爲一個在 RHEL5.3 上安裝 sysstat 包的例子。
# rpm -ivh sysstat-7.0.2-3.el5.ppc.rpm warning: sysstat-7.0.2-3.el5.ppc.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... #################################### [100%] 1:sysstat #################################### [100%]
清單 2 與清單 3 是在一個負載較重的 AIX 節點上運行 iostat 和 sar 的執行結果,每一個命令時間間隔設定爲 10 秒,總共執行3次。
# iostat -d 10 3 System configuration: lcpu=32 drives=226 paths=2 vdisks=0 Disks: % tm_act Kbps tps Kb_read Kb_wrtn hdisk1 51.6 1582.8 25.6 2208 13632 hdisk2 14.6 6958.5 7.1 0 69637 hdisk3 94.2 40013.8 73.3 9795 390643 hdisk1 61.2 2096.9 33.9 4176 16844 hdisk2 20.1 9424.0 10.0 32 94438 hdisk3 97.2 39928.3 73.8 25112 375144 hdisk1 63.5 2098.6 34.7 4216 16796 hdisk2 27.1 13549.5 13.6 8352 127308 hdisk3 98.4 40263.8 81.2 27665 375464
主要字段含義以下:
% tm_act 表示物理磁盤處於活動狀態的時間百分比,即磁盤利用率。
Kbps 表示以 KB 每秒爲單位的傳輸(讀或寫)到驅動器的數據量。
Tps 表示每秒物理磁盤的 I/O 次數。
Kb_read 在設定時間間隔內讀取的數據量,以 KB 爲單位。
Kb_wrtn 在設定時間間隔內寫入的數據量,以 KB 爲單位。
# sar -d 10 3 AIX node001 1 6 00CAA4CC4C00 08/19/09 System configuration: lcpu=32 drives=226 mode=Capped 04:34:43 device %busy avque r+w/s Kbs/s avwait avserv 04:34:53 hdisk1 52 0.0 26 1645 0.0 28.3 hdisk2 18 0.0 8 8614 0.4 73.5 hdisk3 92 0.1 72 38773 28.5 105.1 04:35:03 hdisk1 62 0.0 34 2133 0.0 30.7 hdisk2 20 0.0 10 9855 0.4 84.2 hdisk3 98 0.1 74 39975 24.4 115.7 04:35:13 hdisk1 62 0.0 33 2019 0.0 32.5 hdisk2 23 0.0 11 11898 0.4 67.4 hdisk3 97 0.0 80 40287 13.7 97.4 Average hdisk1 58 0.0 31 1932 0.0 30.5 hdisk2 20 0.0 9 10122 0.4 75.0 hdisk3 95 0.1 75 39678 22.2 106.1
輸出的主要字段含義以下:
%busy 處理 I/O 請求所佔用的時間,以百分比表示。
avque 在指定的時間間隔沒有完成的請求數量的平均值。
r+w/s 每秒 I/O 讀寫總數。
Kbs/s 每秒字節數,以 KB 爲單位。
avwait 傳送請求等待隊列空閒的平均時間,以毫秒爲單位。
avserv 完成 I/O 請求所需平均時間,以毫秒爲單位。
本例顯示 hdisk1 的利用率居中,每秒 I/O 數居中,但吞吐量最小;hdisk2 的利用率最小,每秒 I/O 數最小,但吞吐量比 hdisk1 高;hdisk3 I/O 利用率最大,每秒 I/O 數和吞吐量也最大,I/O 平均等待時間最長,服務時間也最長。hdisk1 的平均 I/O 尺寸爲 1932/31= 62 KB;hdisk2 的平均 I/O 尺寸爲 10122/9= 1125 KB;hdisk3 的平均 I/O 尺寸爲 39678/75= 529 KB。從中可見,小塊隨機存取對每秒 I/O 數影響較大,大塊順序讀取對吞吐量影響較大。hdisk3 利用率超過 70% 警惕線,雖然其平均 I/O 尺寸比 hdisk2 小約一半,但服務時間卻比 hdisk2 增長約 30%,同時等待時間也較長,應該對其採起管理措施。
清單 4 與清單 5 是在一個負載較輕的 Linux 節點上 iostat 和 sar 的執行結果,時間間隔設定爲 10 秒,總共執行 3 次。
# iostat -d -x 10 3 Linux 2.6.18-128.el5 (node002.ibm.com) 08/19/2009 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.10 22.12 0.14 2.06 12.98 286.60 136.58 0.19 87.17 3.76 0.82 sda1 0.00 0.00 0.00 0.00 0.00 0.00 75.06 0.00 3.89 3.14 0.00 sda2 0.00 0.00 0.00 0.00 0.02 0.00 53.56 0.00 13.28 11.67 0.00 sda3 0.09 22.12 0.14 2.06 12.94 286.60 136.59 0.19 87.19 3.76 0.82 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 6.40 0.00 1.20 0.00 91.20 76.00 0.01 7.25 5.08 0.61 sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda3 0.00 6.40 0.00 1.20 0.00 91.20 76.00 0.01 7.25 5.08 0.61 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 3.30 0.00 5.40 0.00 100.00 18.52 0.45 83.24 3.63 1.96 sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda3 0.00 3.30 0.00 5.40 0.00 100.00 18.52 0.45 83.24 3.63 1.96
主要字段含義以下:
r/s 每秒讀操做數。
w/s 每秒寫操做數。
rsec/s 每秒從設備讀取的扇區數量。
wsec/s 每秒向設備寫入的扇區數量。
avgrq-sz I/O 請求的平均扇區數。
avgqu-sz I/O 請求的平均隊列長度。
await I/O 請求的平均等待時間,單位爲毫秒。
svctm I/O 請求的平均服務時間,單位爲毫秒。
%util 處理 I/O 請求所佔用的時間的百分比,即設備利用率。
#sar -pd 10 3 Linux 2.6.18-128.el5 (node002.ibm.com) 08/19/2009 04:13:48 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 04:13:58 AM sda 1.20 0.00 91.11 76.00 0.01 7.25 5.08 0.61 04:13:58 AM sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:13:58 AM sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:13:58 AM sda3 1.20 0.00 91.11 76.00 0.01 7.25 5.08 0.61 04:13:58 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 04:14:08 AM sda 5.41 0.00 100.10 18.52 0.45 83.24 3.63 1.96 04:14:08 AM sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:14:08 AM sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:14:08 AM sda3 5.41 0.00 100.10 18.52 0.45 83.24 3.63 1.96 04:14:08 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 04:14:18 AM sda 0.60 0.00 74.47 124.00 0.00 7.50 6.33 0.38 04:14:18 AM sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:14:18 AM sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:14:18 AM sda3 0.60 0.00 74.47 124.00 0.00 7.50 6.33 0.38 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util Average: sda 2.40 0.00 88.56 36.89 0.15 64.26 4.10 0.98 Average: sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: sda3 2.40 0.00 88.56 36.89 0.15 64.26 4.10 0.98
輸出的主要字段含義以下:
DEV 正在監視的塊設備
tps 每秒鐘物理設備的 I/O 傳輸總量
rd_sec/s 每秒從設備讀取的扇區數量
wr_sec/s 每秒向設備寫入的扇區數量
avgrq-sz I/O 請求的平均扇區數
avgqu-sz I/O 請求的平均隊列長度
await I/O 請求的平均等待時間,單位爲毫秒
svctm I/O 請求的平均服務時間,單位爲毫秒
%util I/O 請求所佔用的時間的百分比,即設備利用率
本例可見磁盤 sda 的 I/O 操做較少,僅分區 sda3 存在 I/O 操做,且利用率低於 1%,平均 I/O 尺寸爲 0.15 * 512 = 77B,I/O 操做以小塊寫入爲主。本例中未發現異常輸出,不需對磁盤採起管理措施。
前文介紹了 AIX 與 Linux 磁盤 I/O 監控的手段,本節將結合實例介紹磁盤 I/O 監控的自動化腳本的設計和實現。
1 . 監控指標
前文介紹了多個監控指標,好比吞吐量,每秒 I/O 數,平均單次 I/O 響應時間,磁盤利用率等,用戶能夠根據自身系統和應用的特色選取監控指標。下文將以磁盤利用率爲例進行監控腳本的設計。
2 .監控手段
對於 AIX, 命令「iostat -d」的輸出字段「% tm_act」反映磁盤利用率;對於 Linux, 命令「iostat -d -x」的輸出字段「%util」反映磁盤利用率。監控的頻次能夠經過「iostat」命令自己的參數指定。
3. 告警機制
通常來講,若是磁盤使用率長時間達到 75% 或 80%, 一般會視爲磁盤較忙,通常需進行調整磁盤佈局,調整應用使用分配等管理活動,若是磁盤使用率偶爾較高,只須要繼續監視便可。所以告警既不能對於偶發現象頻繁告警,也不能放過持續時間較長的現象,本例的告警機制設定爲「在必定時間間隔內的必定比例的監控記錄超出設定的磁盤利用率門限值即告警」
4 .日誌
要保留磁盤 I/O,分析活動,告警信息等原始信息,便於之後進行問題分析,定位。
結合上文設計思路,筆者開發了磁盤 I/O 分析和告警腳本 I/OAnalyzer.sh, 咱們的腳本在 RHEL 5.三、SLES 十一、AIX 5.3 和 AIX 6.1 上測試經過。
腳本 IOAnalyzer.sh 的第一部分先進行了初始化,檢驗並處理輸入參數,對未輸入的參數指定默認值。
#!/bin/sh # ================================================================ # Script Name: IOAnalyzer.sh # Desciption: To analyze output of 'iostat -d', send an alert to admin # if disk utilization counter reach defined threshold # Date: May 19, 2009 #================================================================ # ----------------------------------------------------------------- # Function definitions... 定義函數 #---------------------------------------------------------------- function usage { echo "" echo "usage: IOAnalyzer.sh -i inIostatFile [ -l outLogFile ] \ [ -a outAlertFile ] [ -u dishUtil ] [ -r rateGEUtil ]" echo "" echo "For example: IOAnalyzer.sh -i /tmp/iostat.out -l /tmp/logFile \ -a /tmp/aletFile -u 80 -r 70" echo "For AIX, please run 'iostat -d [ <interval> [ <count> ] \ to create inIostatFile" echo "For Linux, please run 'iostat -d -x [ <interval> [ <count> ] \ to create inIostatFile" exit 1 } # ---------------------------------------------------------------- # Process command-line arguments 命令行參數處理 # ---------------------------------------------------------------- while getopts :i:l:a:u:r: opt do case "$opt" in i) inIostatFile="$OPTARG";; l) outLogFile="$OPTARG";; a) outAlertFile="$OPTARG";; u) diskUtil="$OPTARG";; r) rateGEUtil="$OPTARG";; \?) usage;; esac done #---------------------------------------------------------------- # Input validation 輸入驗證 #---------------------------------------------------------------- if [ ! -f "$inIostatFile" ] then echo "error: invalid Augument inIostatFile in OPTION -i " usage exit 1 fi #--------------------------------------------------------------- # Set values, if unset 設置變量 # ---------------------------------------------------------------- outLogFile=${outLogFile:-${inIostatFile}.log} outAlertFile=${outAlertFile:-${inIostatFile}.alert} diskUtil=${diskUtil:-'80'} rateGEUtil=${rateGEUtil:-'60'}
接下來, IOAnalyzer.sh 腳本查詢日誌,經過計算起止行的辦法定位 IO 輸出文件的待分析文本。
# ---------------------------------------------------------------- # Identify the lines to be analyzed between StartLine and Endline # 定位日誌中待分析文本 # ---------------------------------------------------------------- if [ ! -f "$outLogFile" ] || [ ! tail -1 "$outLogFile"|grep 'ENDLINE'] then StartLineNum=1; else CompletedLine=`tail -1 "$outLogFile" | grep 'ENDLINE' | \ awk '{print $4}'|cut -d: -f2` StartLineNum=`expr 1 + $CompletedLine` fi eval "sed -n '${StartLineNum},\$p' $inIostatFile" > ${inIostatFile}.tail LineCount=`cat ${inIostatFile}.tail|wc -l|awk '{print $1}'` EndLineNum=`expr $LineCount + $StartLineNum`
清單 7 中的腳本實現了按行分析上文定位的 iostat 輸出,若是某行磁盤利用率小於先前定義的門限值,則在行尾標記「OK」,若是某行磁盤利用率大於等於先前定義的門限值,則在行尾標記「Alarm」。而且腳本中對於 AIX 和 Linux 輸出格式和磁盤命名的不一樣做了相應處理。
# ---------------------------------------------------------------- # Analyze 'iostat' output, append "Alarm" or "OK" at the end of each# line # ---------------------------------------------------------------- OS=`uname` case "$OS" in AIX) diskUtilLabel="% tm_act" diskUtilCol=2 diskPrefix="hdisk" ;; Linux) diskUtilLabel="%util" diskUtilCol=14 diskPrefix="hd|sd" ;; *) echo "not support $OS operating system!" exit 1; ;; esac eval "cat ${inIostatFile}.tail | egrep '${diskPrefix}' \ | awk '{if ( \$${diskUtilCol} * 100 < ${diskUtil} ) \ {\$20 = \"OK\"; print \$1\"\t\"\$${diskUtilCol}\"\t\"\$20 } \ else {\$20 = \"Alarm\"; print \$1\"\t\"\$${diskUtilCol}\"\t\"\$20 } }'" \ > ${outLogFile}.tmp
下文腳本給出一個告警觸發的例子,若是太高的磁盤利用率計數佔總分析行數的比率達到或超出預約的比率,腳本會給 root 用戶發一封告警郵件。
# ---------------------------------------------------------------- # Send admin an alert if disk utilization counter reach defined # threshold # ---------------------------------------------------------------- Alert="NO" for DISK in `cut -f1 ${outLogFile}.tmp | sort -u` do numAlarm=`cat ${outLogFile}.tmp | grep "^$DISK.*Alarm$" |wc -l` numRecord=`cat ${outLogFile}.tmp | grep "^$DISK" |wc -l` rateAlarm=`expr $numAlarm \* 100 / $numRecord` if [ $rateAlarm -ge $rateGEUtil ];then echo "DISK:${DISK} TIME:`date +%Y%m%d%H%M` \ RATE:${rateAlarm} THRESHOLD:${rateGEUtil}" >> ${outAlertFile}.tmp Alert="YES" fi done if [ $Alert= "YES" ];then cat ${outAlertFile}.tmp >> ${outAlertFile} mail -s "DISK IO Alert" root@localhost< ${outAlertFile}.tmp fi
最後,腳本將分析活動歸檔,便於下次分析時定位起始行;另外,分析過程當中產生的文件將被刪除。
#---------------------------------------------------------------- # Clearup temporary files and logging # ---------------------------------------------------------------- echo "IOSTATFILE:${inIostatFile} TIME:`date +%Y%m%d%H%M` \ STARTLINE:${StartLineNum} ENDLINE:${EndLineNum} ALERT:${Alert}" \ >> ${outLogFile} rm -f ${outLogFile}.tmp rm -f ${outAlertFile}.tmp rm -f ${inIostatFile}.tail exit 0
如下爲 IOAnalyzer.sh 腳本在 AIX 上使用示例
1 .後臺執行 iostat, 並將輸出重定向到文件中
# nohup iostat -d 5 > /root/iostat.out & (對於 Linux,運行 iostat -d – x 5 > /root/iostat.out &)
2 .編輯 crontab 文件,每 10 分鐘運行一次 IOAnalyzer.sh 腳本,-u 70 –r 80,表示在距上次運行 IOAnalyzer.sh 至今產生的某磁盤的監控記錄中的 80% 使用率達到或超過 70%,即發出告警。告警日誌和分析日誌可經過 IOAnalyzer.sh 的 –l –a 參數指定,本例保持默認值,即在 iostat 的輸出文件所在目錄產生 iostat.out.log 和 iostat.out.alert 文件。
# crontab – e 0,10,20,30,40,50 * * * * /root/IOAnalyzer.sh -i /root /iostat.out -u 70 \ -r 80>/tmp/iostat.out 2>&1
3 .用戶收到告警郵件,須要進一步查詢歷史記錄時,可查看日誌文件
# cat /root/iostat.out.log | more IOSTATFILE: /root/iostat.out TIME:200905200255 STARTLINE:7220 ENDLINE:7580 ALARM:YES IOSTATFILE: /root/iostat.out TIME:200905200300 STARTLINE:7581 ENDLINE:7940 ALARM:YES IOSTATFILE:/root/iostat.out TIME:200905200305 STARTLINE:7941 ENDLINE:8300 ALARM:YES [AIXn01]> cat /root/iostat.out.alert | more DISK:hdisk4 TIME:200905200250 RATE:84 THRESHOLD:70 DISK:hdisk5 TIME:200905200250 RATE:84 THRESHOLD:70 DISK:hdisk6 TIME:200905200250 RATE:84 THRESHOLD:70
本文介紹了 Unix/Linux 上的磁盤 I/O 管理命令並經過一個自動化監控腳本詳細介紹瞭如何實現磁盤 I/O 的自動化監控管理。磁盤 I/O 的自動化監控能幫助系統管理員及時發現磁盤 I/O 的異常問題,管理員可經過採起相應的措施使得問題得以消除和緩解。