tty 和 cpu 使用率報告
由 iostat 指令生成的第一份報告是 tty 和 cpu 使用率報告。對于多處理器系統,cpu 值是所有處理器的總平均。同時,i/o 等待狀态是系統級定義的,而不是每個處理器。報告有以下格式:
欄 描述
tin 顯示了系統為所有 tty 讀取的字元總數。
tout 顯示了系統為所有 tty 寫入的字元總數。
% user 顯示了在使用者級(應用程式)執行時生成的 cpu 使用率百分比。
% sys 顯示了在系統級(核心)執行時生成的 cpu 使用率百分比。
% idle 顯示了在 cpu 空閑并且系統沒有未完成的磁盤 i/o 請求時的時間百分比。
% iowait 顯示了 cpu 空閑期間系統有未完成的磁盤 i/o 請求時的時間百分比。
physc 消耗的實體處理器的數量,僅當分區與共享處理器運作時顯示。
% entc 消耗的标題容量的百分比,僅當分區與共享處理器運作時顯示。由于計算該資料所依據的時間基礎會發生變化,是以授權容量百分比有時可能超過 100%。這種超過隻在采樣時間間隔很小時才會比較明顯。
每過一定時間間隔,核心就更新這條資訊(一般每秒六十次)。tty 報告提供了從系統中所有終端的收到的每秒字元總數,以及和每秒輸出到系統所有終端的字元的總數。
用來計算 cpu 磁盤 i/o 等待時間的方法
作業系統 v4.3.3 和後來的版本包含用來估算 cpu 在磁盤 i/o(wio 時間)等待上的所花時間的百分比的增強方法。用在 aix 4.3.2 和作業系統的早期版本上的方法在一定條件下,能夠給出 smp 上的 wio 時間的一個放大的視圖。wio 時間是根據指令 sar(%wio)、vmstat(wa)和 iostat(% iowait)報告出來的。
在 aix 4.3.2 中和早期版本中使用的方法如下:在每個處理器(每處理器一秒一百次)的每個時鐘中斷上,将确定四個類别(usr/sys/wio/idle)中的哪一個放置在最後的 10ms 内。如果在時鐘中斷的時刻 cpu 以 usr 模式中處于忙狀态,則 usr 獲得這個時間計點并歸于此類。如果在時鐘中斷時刻 cpu 以核心模式中處于忙狀态,則 sys 類别将獲得該計時點。如果 cpu 不處于忙狀态,将檢查是否在進行任何磁盤 i/o。如果在進行任何磁盤 i/o,則 wio 類别将增加。如果磁盤在進行 i/o 操作并且 cpu 不忙,則 idle 類别将擷取計時點。wio 時間的放大視圖是由于所有空閑 cpu 被歸為 wio 而不管在 i/o 上等待的線程數所導緻。例如,僅有一個線程執行 i/o 的系統可以報告超過 90% 的 wio 時間而不管其 cpu 數。
在 aix 4.3.3 中和後繼版本中使用的方法如下:如果在那個 cpu 上啟動一個未完成的 i/o,則作業系統 v4.3.3 中的更改僅将一個空閑 cpu 标為 wio。當隻有少數線程正在執行 i/o 否則系統就空閑的情況下,這種方法可以報告更少的 wio 時間。例如,一個有四個 cpu 且隻有一個線程執行 i/o 的系統将報告一個最大值是 25% 的 wio 時間。一個有 12 個 cpu 且僅有一個線程執行 i/o 的系統将報告一個最大值為 8% 的 wio 時間。 nfs 客戶機通過 vmm 讀/寫,并且為了完成一個 i/o 而在 vmm 等待中用的時間現在将被報告為 i/o 等待時間。
磁盤使用率報告
由 iostat 指令生成的第二個報告是磁盤使用率報告。磁盤報告提供了在每個實體磁盤基礎上的統計資訊。預設報告有與以下類似的格式:
% tm_act 表示實體磁盤處于活動狀态的時間百分比(驅動器的帶寬使用率)。
kbps 表示以 kb 每秒為機關的傳輸(讀或寫)到驅動器的資料量。
tps 表示每秒鐘輸出到實體磁盤的傳輸次數。一次傳輸就是一個對實體磁盤的 i/o 請求。多個邏輯請求可被并為對磁盤的一個單一 i/o 請求。傳輸具有不确定的大小。
kb_read 讀取的 kb 總數。
kb_wrtn 寫入的 kb 總數。
如果指定了 -d 标志,則報告有以下路徑成本:
與磁盤傳送(xfer)有關的路徑成本:
bps 表示每秒傳輸(讀或寫)到驅動器的資料量。使用不同的字尾來代表傳送機關。預設機關是位元組/秒。
bread 表示每秒從驅動器上讀取的資料量。使用不同的字尾來代表傳送機關。預設機關是位元組/秒。
bwrtn 表示每秒寫入到驅動器的資料量。使用不同的字尾來代表傳送機關。預設機關是位元組/秒。
磁盤讀取服務路徑成本(讀取):
rps 表示每秒讀取傳輸的數量。
avgserv 表示每次讀取傳輸的平均服務時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
minserv 表示最少的讀取服務時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
maxserv 表示最多的讀取服務時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
timeouts 表示每秒讀取逾時的數量。
fails 表示每秒失敗的讀取請求的數量。
磁盤寫入服務路徑成本(寫入):
wps 表示每秒寫入傳輸的數量。
avgserv 表示每次寫入傳輸的平均服務時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
minserv 表示最少的寫入服務時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
maxserv 表示最多的寫入服務時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
timeouts 表示每秒寫入逾時的數量。
fails 表示每秒失敗的寫入請求的數量。
磁盤等待隊列服務路徑成本(隊列):
avgtime 表示傳輸請求在等待隊列中所花的平均時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
mintime 表示傳輸請求在等待隊列中所花的最短時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
maxtime 表示傳輸請求在等待隊列中所花的最長時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
avgwqsz 表示等待隊列的平均大小。
avgsqsz 表示服務隊列的平均大小。
sqfull 表示每秒内服務隊列變滿(即,磁盤不再接受任何服務請求)的次數。
代表不同說明單元的字尾圖注
字尾 描述
k 1000 位元組
m 1 000 000 位元組(如果以 xfer 路徑成本顯示)。分鐘(如果以讀取/寫入/等待服務路徑成本顯示)。
g 1 000 000 000 位元組。
t 1 000 000 000 000 位元組。
s 秒。
h 小時。
注:
對于不支援服務時間路徑成本的驅動器,将不顯示讀取、寫入和等候隊列服務路徑成本。
cd-rom 裝置的統計資訊也要報告。
系統吞吐量報告
如果指定 -s 标志将生成這個報告。這份報告提供了整個系統的統計資訊。這份報告有以下格式:
kbps 表示了每秒以 kb 為機關的傳輸(讀或寫)到整個系統的資料量。
tps 表示每秒傳輸到整個系統的傳輸次數。
kb_read 從整個系統中讀取的 kb 總數。
kb_wrtn 寫到整個系統的 kb 總數。
擴充卡吞吐量報告
如果指定 -a 标志将生成該報告。這份報告提供了以每個擴充卡(包括實體擴充卡和虛拟擴充卡)為基礎的統計資訊。該報告對于實體擴充卡報告具有以下格式:
kbps 表示每秒鐘以 kb 為機關的傳輸到(讀或寫)到擴充卡的資料量。
tps 表示每秒鐘輸出到擴充卡的傳輸次數。
kb_read 從擴充卡讀取的 kb 總數。
kb_wrtn 寫到擴充卡的 kb 總數。
虛拟擴充卡的預設吞吐量報告有以下格式:
bkread 每秒從托管伺服器接收至該擴充卡的塊數。
bkwrtn 每秒從該擴充卡發送至托管伺服器的塊數。
partition-id 托管伺服器的分區辨別,它為該擴充卡發送的請求提供服務。
虛拟擴充卡的擴充吞吐量報告(-d 選項)有以下格式:
與傳送(xfer:)有關的路徑成本
擴充卡讀取服務路徑成本(讀取:)
rps 表示每秒讀取請求的數量。
avgserv 表示為已發送的讀取請求從托管伺服器上接收響應的平均時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
minserv 表示為已發送的讀取請求從托管伺服器上接收響應的最短時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
maxserv 表示為已發送的讀取請求從托管伺服器上接收響應的最長時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
擴充卡寫入服務路徑成本(寫入:)
wps 表示每秒寫入請求的數量。
avgserv 表示為已發送的寫入請求從托管伺服器上接收響應的平均時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
minserv 表示為已發送的寫入請求從托管伺服器上接收響應的最短時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
maxserv 表示為已發送的寫入請求從托管伺服器上接收響應的最長時間。使用不同的字尾來代表時間機關。預設機關是毫秒。
擴充卡等待隊列路徑成本(隊列:)
sqfull 表示每秒内服務隊列變滿(即,托管伺服器不再接受任何服務請求)的次數。
k 1000 位元組。
異步 i/o 報告
異步 i/o 報告有以下列标題:
avgc 指定時間間隔的每秒平均全局 aio 請求計數。
avfc 指定時間間隔的每秒平均快速路徑請求計數。
maxgc 上一次訪存這個值以來的最大全局 aio 請求計數。
maxfc 上一次訪存這個值以來的最大快速路徑請求計數。
maxreqs 所允許的最大 aio 請求數。
磁盤輸入/輸出曆史記錄
為了提高性能,已經禁用了磁盤輸入/輸出統計資訊的收集。要啟用該資料的集合,請輸入:
chdev -l sys0 -a iostat=true
要顯示目前設定,請輸入:
lsattr -e -l sys0 -a iostat
如果禁用了磁盤輸入/輸出曆史記錄的收集,并且在不帶時間間隔的情況下調用了 iostat,則 iostat 輸出将顯示消息自引導以來的磁盤曆史記錄不可用,而不是磁盤統計資訊。
标志
-a 指定擴充卡吞吐量報告。
-a 顯示指定時間間隔和計數的 aio 統計資訊。
-d 隻指定驅動器報告。
-d 隻指定擴充驅動器報告。
-l 對長清單方式顯示輸出。預設列寬是 80。
-m 指定路徑的統計資訊。
-p 與 -a 選項相同,使用 posix aio 調用擷取的資料除外。
-q 指定 aio 隊列和它們的請求計數。
-q 顯示所有安裝的檔案系統和相關的隊列數以及它們請求計數的清單。
-r 指定在每個時間間隔都應複位 min* 和 max* 值。預設情況下将僅在 iostat 啟動時執行一次複位。
-s 指定系統吞吐量報告。
-t 隻指定 tty/cpu 報告。
-t 指定時間戳記。
-z 複位磁盤輸入/輸出統計資訊。隻有 root 使用者才可以使用此選項。
-q 或 -q 隻能與 -a 一起指定。
-a 和 -s 也可以與 -a 一起指定,但在指定了-q 或 -q 時不能與 -a 一起指定。
-t 和 -d 不能同時指定。
-d 和 -d 不能同時指定。
-r 隻能和 -d 一起指定。
示例
要為所有 tty、cpu 和磁盤顯示引導後的單一曆史記錄報告,請輸入:
iostat
要為邏輯名是 disk1 的磁盤顯示一個以兩秒為時間間隔的持續磁盤報告,請輸入:
iostat -d disk1 2
要為邏輯名是 disk1 的磁盤顯示以兩秒為時間間隔的六個報告,請輸入:
iostat disk1 2 6
要為所有磁盤顯示以兩秒為時間間隔的六個報告,請輸入:
iostat -d 2 6
要為三個名稱分别為 disk1、disk2、disk3 的磁盤顯示以兩秒為時間間隔的六個報告,請輸入:
iostat disk1 disk2 disk3 2 6
要列印系統引導以來的系統吞吐量報告,請輸入:
iostat -s
要列印以五秒為時間間隔的擴充卡吞吐量報告,請輸入:
iostat -a 5
要列印以二十秒為時間間隔的十個系統和擴充卡吞吐量報告,且僅帶有 tty 和 cpu 報告(沒有磁盤報告),請輸入:
iostat -sat 20 10
要列印帶有 hdisk0 和 hdisk7 的磁盤使用率報告的系統和擴充卡吞吐量報告(每 30 秒一次),請輸入:
iostat -sad hdisk0 hdisk7 30
要顯示 iostat 輸出的每行的下一行的時間戳記,請輸入:
iostat -t 60
要顯示關于 aio 的以兩秒為時間間隔的六個報告,請輸入:
iostat -a 2 6
要顯示自引導以來與所有已安裝的檔案系統相關的隊列的 aio 統計資訊,請輸入:
iostat -a -q
要顯示所有磁盤的擴充驅動器報告,請輸入:
iostat -d
要顯示某個特定磁盤的擴充驅動器報告,請輸入:
iostat –d hdisk0
要複位磁盤輸入/輸出統計資訊,請輸入:
iostat –z