iostat報表
iostat 指令產生兩種報表,「CPU」和 「 Device 」 使用報告。
CPU Utilization Report
第一個部分是 「CPU Utilization Report」 ,對於多核心系統,CPU欄位的值會是所有CPU的平均值,其他的欄位介紹如下:
%user
顯示在使用者空間(user level/application layer)執行的CPU比例。
%nice
顯示在使用者空間(user level/application layer)執行並且帶有nice優先權的CPU比例。
%system
顯示在使用者空間(system level/kernel layer)執行的CPU比例。
%iowait
顯示一個或多個CPU在等待系統磁碟IO的時間。
%steal
顯示hypervisor的虛擬CPU正在服務其他虛擬處理器的等待時間。
%idle
顯示CPU的閒置時間,而這段時間并沒有在等待IO行為。
Device Utilization Report
iostat 所產生的第二個報表是『Device Utilization Report』,這份報表提供的數據是針對每個實體的裝置或分區(partition)。『Transfer rates』預設會顯示1K blocks,除非你有設定環境變數『POSIXLY_CORRECT』。第二份報表所有的欄位介紹如下:
Device:
在『/dev』底下的裝置名稱。
tps
代表的是對這個裝置的每秒傳輸速度(transfers per second),一個傳輸(transfer)代表的是一個到這個裝置的I/O request,多重的邏輯需求(logical requests)可以被合成為一個I/O request,而每一個transfer的size都是不確定大小的。
Blk_read/s (kB_read/s, MB_read/s)
代表從這個裝置所讀取的總量,單位是每秒多少block(kilobytes, megabytes),這部份用『-k』和『-m』來控制,blocks就等於是一個sector,代表的是512 bytes。
Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s)
代表的是從這個裝置所寫入的總量,單位是每秒多少block(kilobytes, megabytes).
Blk_read (kB_read, MB_read)
總共有多少block被讀取了。(kilobytes, megabytes).
Blk_wrtn (kB_wrtn, MB_wrtn)
總共有多少block被寫入了。(kilobytes, megabytes).
rrqm/s
每秒有多少read requests的聚合(merged)送到這個裝置。
wrqm/s
每秒有多少write requests的聚合(merged)送到這個裝置。
r/s
每秒有多少已經merged過的read requests送到這台裝置。
w/s
每秒有多少已經merged過的write requests送到這台裝置。
rsec/s (rkB/s, rMB/s)
這個裝置每秒有多少磁區(kilobytes, megabytes)被讀取。
wsec/s (wkB/s, wMB/s)
這個裝置每秒有多少磁區(kilobytes, megabytes)被寫入。
avgrq-sz
平均每個磁區中有多少size的requests被送到這台裝置。
avgqu-sz
送到這個裝置的所有requests平均queue長度。
await
發送到這台裝置上被處理過得I/O requests平均時間(in milliseconds)。這包含了在queue中requests所花費的時間和處理的相關時間。
r_await
發送到這台裝置上被處理過得read requests平均時間(in milliseconds)。這包含了在queue中requests所花費的時間和處理的相關時間。
w_await
發送到這台裝置上被處理過得write requests平均時間(in milliseconds)。這包含了在queue中requests所花費的時間和處理的相關時間。
svctm
發送到這個裝置的所有I/O requests 平均處理時間(in milliseconds),但是這個欄位已經準備要在『sysstat』版本要被移除掉了,所以就不要在看了。
%util
在I/O requests發送到裝置上所花費的時間比例(採用裝置的頻寬),如果你的裝置運作的很頻繁讓這個值跑到100%的話,就會讓裝置變成一種飽和的狀態,但是如果你的裝置是處於平行處理(parallel),像是『RAID』或是『SSD』之類的,這個數字也許就沒有反應其效能的價值了。