【AIX 學習】效能優化--iostat (續)

楊奇龍發表於2010-09-10

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)有關的度量值: 
% tm_act 表示物理磁碟處於活動狀態的時間百分比(驅動器的頻寬使用率)。
bps 表示每秒傳輸(讀或寫)到驅動器的資料量。使用不同的字尾來代表傳送單位。預設單位是位元組/秒。
tps 表示每秒鐘輸出到物理磁碟的傳輸次數。一次傳輸就是一個對物理磁碟的 I/O 請求。多個邏輯請求可被併為對磁碟的一個單一 I/O 請求。傳輸具有不確定的大小。
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 總數。

虛擬介面卡的預設吞吐量報告有以下格式:

Kbps 表示每秒鐘以 KB 為單位的傳輸到(讀或寫)到介面卡的資料量。
tps 表示每秒鐘輸出到介面卡的傳輸次數。
bkread 每秒從託管伺服器接收至該介面卡的塊數。
bkwrtn 每秒從該介面卡傳送至託管伺服器的塊數。
partition-id 託管伺服器的分割槽標識,它為該介面卡傳送的請求提供服務。

虛擬介面卡的擴充套件吞吐量報告(-D 選項)有以下格式:

與傳送(xfer:)有關的度量值 
Kbps 表示每秒鐘以 KB 為單位的傳輸到(讀或寫)到介面卡的資料量。
tps 表示每秒鐘輸出到介面卡的傳輸次數。
bkread 每秒從託管伺服器接收至該介面卡的塊數。
bkwrtn 每秒從該介面卡傳送至託管伺服器的塊數。
partition-id 託管伺服器的分割槽標識,它為該介面卡傳送的請求提供服務。
介面卡讀取服務度量值(讀取:) 
rps 表示每秒讀取請求的數量。
avgserv 表示為已傳送的讀取請求從託管伺服器上接收響應的平均時間。使用不同的字尾來代表時間單位。預設單位是毫秒。
minserv 表示為已傳送的讀取請求從託管伺服器上接收響應的最短時間。使用不同的字尾來代表時間單位。預設單位是毫秒。
maxserv 表示為已傳送的讀取請求從託管伺服器上接收響應的最長時間。使用不同的字尾來代表時間單位。預設單位是毫秒。
介面卡寫入服務度量值(寫入:) 
wps 表示每秒寫入請求的數量。
avgserv 表示為已傳送的寫入請求從託管伺服器上接收響應的平均時間。使用不同的字尾來代表時間單位。預設單位是毫秒。
minserv 表示為已傳送的寫入請求從託管伺服器上接收響應的最短時間。使用不同的字尾來代表時間單位。預設單位是毫秒。
maxserv 表示為已傳送的寫入請求從託管伺服器上接收響應的最長時間。使用不同的字尾來代表時間單位。預設單位是毫秒。
介面卡等待佇列度量值(佇列:) 
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 小時。

非同步 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 不能同時指定。
-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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-673180/,如需轉載,請註明出處,否則將追究法律責任。

相關文章