iostat 磁盤IO Linux iostat

磁盤IO Linux iostat


命令詳解


Linux系統中的iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。它的特點是彙報磁盤活動統計情況,同時也會彙報出CPU使用情況。

同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。


命令參數


-c 顯示CPU使用情況
-d 顯示磁盤使用情況
-k 以K爲單位顯示
-m 以M爲單位顯示
-N 顯示磁盤陣列(LVM) 信息
-n 顯示NFS使用情況
-p 可以報告出每塊磁盤的每個分區的使用情況
-t 顯示終端和CPU的信息
-x 顯示詳細信息
下面就對我們常用的使用方式進行詳細的總結。


使用實例


命令:iostat -x
說明:顯示詳細信息

輸出:
在這裏插入圖片描述

%user:CPU處在用戶模式下的時間百分比
%nice:CPU處在帶NICE值的用戶模式下的時間百分比
%system:CPU處在系統模式下的時間百分比
%iowait:CPU等待輸入輸出完成時間的百分比
%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比
%idle:CPU空閒時間百分比

當然了,iostat命令的重點不是用來看CPU的,重點是用來監測磁盤性能的。

Device:設備名稱
rrqm/s:每秒合併到設備的讀取請求數
wrqm/s:每秒合併到設備的寫請求數
r/s:每秒向磁盤發起的讀操作數
w/s:每秒向磁盤發起的寫操作數
rkB/s:每秒讀K字節數
wkB/s:每秒寫K字節數
avgrq-sz:平均每次設備I/O操作的數據大小
avgqu-sz:平均I/O隊列長度
await:平均每次設備I/O操作的等待時間 (毫秒),一般地,系統I/O響應時間應該低於5ms,如果大於 10ms就比較大了
r_await:每個讀操作平均所需的時間;不僅包括硬盤設備讀操作的時間,還包括了在kernel隊列中等待的時間
w_await:每個寫操作平均所需的時間;不僅包括硬盤設備寫操作的時間,還包括了在kernel隊列中等待的時間
svctm:平均每次設備I/O操作的服務時間 (毫秒)(這個數據不可信!)
%util:一秒中有百分之多少的時間用於I/O操作,即被IO消耗的CPU百分比,一般地,如果該參數是100%表示設備已經接近滿負荷運行了

命令:iostat -d 2 3
輸出:

在這裏插入圖片描述
輸出內容詳解:

tps:每秒I/O數(即IOPS。磁盤連續讀和連續寫之和)
kB_read/s:每秒從磁盤讀取數據大小,單位KB/s
kB_wrtn/s:每秒寫入磁盤的數據的大小,單位KB/s
kB_read:從磁盤讀出的數據總數,單位KB
kB_wrtn:寫入磁盤的的數據總數,單位KB

性能監控指標
上面說了這麼多,也看了那麼多的系統輸出,那我們在日常運維中到底需要關注哪些字段呢?下面就來說說這篇文章的重點了,我們到底該關注哪些輸出內容就可以確定這臺服務器是否存在IO性能瓶頸。

%iowait:如果該值較高,表示磁盤存在I/O瓶頸
await:一般地,系統I/O響應時間應該低於5ms,如果大於10ms就比較大了
avgqu-sz:如果I/O請求壓力持續超出磁盤處理能力,該值將增加。如果單塊磁盤的隊列長度持續超過2,一般認爲該磁盤存在I/O性能問題。需要注意的是,如果該磁盤爲磁盤陣列虛擬的邏輯驅動器,需要再將該值除以組成這個邏輯驅動器的實際物理磁盤數目,以獲得平均單塊硬盤的I/O等待隊列長度
%util:一般地,如果該參數是100%表示設備已經接近滿負荷運行了
最後,除了關注指標外,我們更需要結合部署的業務進行分析。對於磁盤隨機讀寫頻繁的業務,比如圖片存取、數據庫、郵件服務器等,此類業務嗎,tps纔是關鍵點。對於順序讀寫頻繁的業務,需要傳輸大塊數據的,如視頻點播、文件同步,關注的是磁盤的吞吐量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章