Linux硬碟磁碟效能分析命令
命令:
iostat -x -k 1
命令參數說明:
-x//獲得更多統計資訊
-k//某些使用block為單位的列強制使用Kilobytes為單位
1 //資料顯示每隔1秒重新整理一次
請看一個輸出執行個體:
輸出項說明:
Device //裝置對象
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
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 操作,即 delta(use)/s/1000 (因為use的單位為毫秒)
如何用這些資料分析問題?
1、如果 %util 較高几率 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁碟可能存在瓶頸。
2、svctm 一般要小於 await (因為同時等待的請求的等待時間被重複計算了)。
svctm 的大小一般和磁碟效能有關,CPU/記憶體的負荷也會對其有影響,請求過多也會間接導致 svctm 的增加。
如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間。
如果 await 遠大於 svctm,說明 I/O 隊列太長,應用得到的回應時間變慢;
如果回應時間超過了可以容許的範圍(%util100%),這時可以考慮更換更快的磁碟。