您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關iostat如何使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
iostat 結果解析
[root@20081006-1724 ~]# iostat -x
Linux 2.6.9-78.ELsmp (20081006-1724) 11/20/2009
avg-cpu: %user %nice %sys %iowait %idle
0.19 0.00 0.04 0.03 99.73
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.05 17.60 1.46 7.72 80.69 202.57 40.34 101.29 30.87 0.01 1.06 0.37 0.34
sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 29.90 0.00 3.14 3.14 0.00
sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16.25 0.00 1.51 1.30 0.00
sda3 0.05 17.60 1.46 7.72 80.69 202.57 40.34 101.29 30.87 0.01 1.06 0.37 0.34
dm-0 0.00 0.00 1.46 25.28 80.32 202.26 40.16 101.13 10.57 0.36 13.56 0.13 0.34
dm-1 0.00 0.00 0.05 0.04 0.37 0.32 0.18 0.16 8.00 0.00 6.84 1.30 0.01
rrqm/s: 每秒進行 merge 的讀操作數目。即 delta(rmerge)/s
wrqm/s: 每秒進行 merge 的寫操作數目。即 delta(wmerge)/s
r/s: 每秒完成的讀 I/O 設備次數。即 delta(rio)/s
w/s: 每秒完成的寫 I/O 設備次數。即 delta(wio)/s
rsec/s: 每秒讀扇區數。即 delta(rsect)/s
wsec/s: 每秒寫扇區數。即 delta(wsect)/s
rkB/s: 每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。
wkB/s: 每秒寫K字節數。是 wsect/s 的一半。
avgrq-sz: 平均每次設備I/O操作的數據大小 (扇區)。即 delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O隊列長度。即 delta(aveq)/s/1000 (因為aveq的單位為毫秒)。
await: 平均每次設備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次設備I/O操作的服務時間 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的時間用于 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。
即 delta(use)/s/1000 (因為use的單位為毫秒)
如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤
可能存在瓶頸。
比較重要的參數
%util: 一秒中有百分之多少的時間用于 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的
svctm: 平均每次設備I/O操作的服務時間
await: 平均每次設備I/O操作的等待時間
avgqu-sz: 平均I/O隊列長度
如果%util接近100%,表明i/o請求太多,i/o系統已經滿負荷,磁盤可能存在瓶頸,一般%util大于70%,i/o壓力就比較大,讀取速度有較多的wait.同時可以結合vmstat查看查看b參數(等待資源的進程數)和wa參數(IO等待所占用的CPU時間的百分比,高過30%時IO壓力高)。
await 的大小一般取決于服務時間(svctm) 以及 I/O 隊列的長度和 I/O 請求的發出模式。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大于 svctm,說明 I/O 隊列太長,應用得到的響應時間變慢。
形象的比喻
r/s+w/s 類似于交款人的總數
平均隊列長度(avgqu-sz)類似于單位時間里平均排隊人的個數
平均服務時間(svctm)類似于收銀員的收款速度
平均等待時間(await)類似于平均每人的等待時間
平均I/O數據(avgrq-sz)類似于平均每人所買的東西多少
I/O 操作率 (%util)類似于收款臺前有人排隊的時間比例
設備IO操作:總IO(io)/s = r/s(讀) +w/s(寫) =1.46 + 25.28=26.74
平均每次設備I/O操作只需要0.36毫秒完成,現在卻需要10.57毫秒完成,因為發出的請求太多(每秒26.74個),假如請求時同時發出的,可以這樣計算平均等待時間:
平均等待時間=單個I/O服務器時間*(1+2+...+請求總數-1)/請求總數
每秒發出的I/0請求很多,但是平均隊列就4,表示這些請求比較均勻,大部分處理還是比較及時
svctm 一般要小于 await (因為同時等待的請求的等待時間被重復計算了),
svctm 的大小一般和磁盤性能有關,CPU/內存的負荷也會對其有影響,請求過多
也會間接導致 svctm 的增加。await 的大小一般取決于服務時間(svctm) 以及
I/O 隊列的長度和 I/O 請求的發出模式。如果 svctm 比較接近 await,說明
I/O 幾乎沒有等待時間;如果 await 遠大于 svctm,說明 I/O 隊列太長,應用
得到的響應時間變慢,如果響應時間超過了用戶可以容許的范圍,這時可以考慮
更換更快的磁盤,調整內核 elevator 算法,優化應用,或者升級 CPU。
隊列長度(avgqu-sz)也可作為衡量系統 I/O 負荷的指標,但由于 avgqu-sz 是
按照單位時間的平均值,所以不能反映瞬間的 I/O 洪水。
使用iostat查看磁盤io狀態時,Device列顯示了多個dm-xxx,但是不知道具體的設備路徑。
關于“iostat如何使用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。