aix基本命令之vmstat

wmlm發表於2007-03-08
報告虛擬記憶體統計資訊。[@more@]

語法
vmstat [ -f ] [ -i ] [ -s ] [ -I ] [ -t ] [ -v ] [ -w] [ -l ] [ PhysicalVolume ... ] [ Interval [ Count ] ]

描述
vmstat 命令報告關於核心執行緒、虛擬記憶體、磁碟、陷阱和 CPU 活動的統計資訊。由 vmstat 命令生成的報告可以用於平衡系統負載活動。系統範圍內的這些統計資訊(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。

如果呼叫 vmstat 命令時不帶標誌,則報告包含系統啟動後虛擬記憶體活動的摘要。如果指定 -f 標誌,則 vmstat 命令報告自從系統啟動後派生的數量。PhysicalVolume 引數指定物理卷的名稱。

Interval 引數指定每個報告之間的時間量(以秒計)。如果沒有指定 Interval 引數,vmstat 命令生成包含有自系統啟動以來的統計資訊的單個報告然後退出。Count 引數只能和 Interval 引數一起指定。如果指定了 Count 引數,其值決定生成的報告數目和相互間隔的秒數。如果 Interval 引數被指定而沒有 Count 引數,則連續生成報告。Count 引數不允許為 0。

在 AIX 4.3.3 及更新版本包含有此方法的增強,用於計算 CPU 等待磁碟 I/O 所花時間(wio 時間)的百分比。某些情況下,AIX 4.3.2 以及該作業系統更早的版本中使用的該方法在 SMP 上會給出誇張的 wio 時間報告。

AIX 4.3.2 和更早版本中使用的方法如下:在每個處理器的每一次時鐘中斷(每個處理器一秒鐘 100 次),確定上一個 10 毫秒時間要歸入四種類別(usr/sys/wio/idle)中的哪一個。如果在時鐘中斷的時候,CPU 正忙於 usr 方式,那麼 usr 將獲取該時鐘週期新增到其類別中。如果在時鐘中斷的時候,CPU 正忙於核心方式,那麼 sys 類別獲取該時鐘週期。如果 CPU 不忙的話,則檢測是否有磁碟 I/O 正在進行。如果有任何正在進行的磁碟 I/ O,則累加 wio 類別。如果沒有磁碟 I/O 正在進行且 CPU 不忙,則 idle 類別獲取該時鐘週期。由於所有的空閒 CPU 都被歸入 wio 類別,而不管正在等待 I/O 的執行緒數量,所以會產生誇大的 wio 時間報告。例如,只有一個 I/O 執行緒的系統可能會報告 90% 以上的 wio 時間,而不管它擁有的 CPU 數量。sar(%wio)、vmstat(wa)和 iostat(% iowait)命令報告 wio 時間。

作業系統 AIX 4.3.3 及其更新版本使用的方法如下:如果一個未完成的 I/O 在空閒的 CPU 上啟動,則作業系統 AIX 4.3.3 中的更改將只把該 CPU 標記成 wio。當只有少量執行緒在進行 I/O 而系統其他部分是空閒的,此方法能報告低得多的 wio 時間。例如,一個有四個 CPU 和一個正在進行 I/O 的執行緒的系統將報告最多 25% 的 wio 時間。有 12 個 CPU 和一個正在進行 I/O 的執行緒的系統只報告最大為 8% 的 wio 時間。NFS 客戶機透過 VMM 讀取/寫入,biods 在 VMM 中花費的等待 I/O 完成的時間現在報告為 I/O 等待時間。

核心為核心執行緒、調頁和中斷活動維護統計資訊,vmstat 命令透過使用perfstat 核心擴充套件來對其進行訪問。磁碟輸入/輸出統計資訊由裝置驅動程式維護。對於磁碟,利用活動時間和傳送資訊數量來確定平均傳送速率。活動時間的百分數根據報告期間驅動器忙的時間量來計算。

首先是 AIX 5.3,vmstat 命令報告在 微分割槽 環境中消耗的物理處理器(pc)數和消耗的授權(ec)百分比。這些度量值將僅對 微分割槽 環境顯示。

由 vmstat 命令生成的報告包含以下列標題及其描述:

關於核心執行緒狀態的 kthr: 資訊。

r 取樣時間間隔內的平均可執行核心執行緒數。可執行是指處於預備狀態但等待執行的執行緒,以及已經在執行的執行緒。
b 取樣時間間隔內的置於 VMM 等待佇列(等待資源、等待輸入/輸出)的平均核心執行緒數。

記憶體:關於使用虛擬記憶體和實記憶體的資訊。如果虛擬頁已經被訪問的話,虛擬頁可以被認為是活動的。一頁為 4096 個位元組。

avm 活動虛擬頁。
fre 空閒列表的大小。
注:
大部分實記憶體都用作檔案系統資料的快取記憶體。對於保持較小的空閒列表,這是很正常的。

頁:關於缺頁故障和調頁活動的資訊。這些是間隔的平均值,以秒為單位給出。

re 頁面排程程式輸入/輸出列表。
pi 從調頁空間排程進的頁面。
po 調出到調頁空間的頁面。
fr 釋放的頁(頁面替換)。
sr 透過頁替換演算法掃描的頁面。
cy 按頁替換演算法的時鐘週期。

故障:取樣間隔平均每秒的捕獲和中斷率。

in 裝置中斷
sy 系統呼叫。
cs 核心執行緒上下文切換。

Cpu:CPU 使用時間故障百分比。

us 使用者時間。
sy 系統時間。
id CPU 空閒時間。
wa CPU 空閒時間,在此期間系統有未完成的磁碟/NFS I/O 請求。請參閱上面的詳細描述。
pc 消耗的物理處理器數。僅當使用共享處理器執行分割槽時才顯示。
ec 消耗的授權容量百分比。僅當使用共享處理器執行分割槽時才顯示。

磁碟:每秒向指定物理卷提供的傳送數目,該過程在取樣間隔中發生。PhysicalVolume 引數可以用於指定一到四個名稱。每個指定驅動器的傳送統計資訊按指定順序給出。該計數代表向物理裝置的請求數。它並不暗示讀取或寫入的資料量。幾個邏輯請求可以組合成為一個物理請求。如果使用了 PhysicalVolume 引數,則在命令執行的開始列印物理卷名稱。

如果指定一個 -I 標誌,I/O 定向檢視將會出現以下欄目變化。

kthr 除了欄 r 和 b之外,欄 p 也將顯示。
p
每秒等待到裸裝置的 I/O 的執行緒數。
頁 將顯示新欄 fi 和 fo,代替 re 和 cy 欄。
fi
每秒調入的檔案。
fo
每秒調出的檔案。

當 vmstat 命令正在執行時,如果在系統配置中存在將影響輸出的更改,則 vmstat 將列印有關該配置更改的警告訊息。然後它在列印更新後的系統配置資訊和頁首之後,繼續輸出。

如果指定 -l 標誌,則還會顯示“大頁面”部分,其中包含以下列:

alp
指示當前正在使用的大頁面數。
flp
指示在大頁面空閒列表上的大頁面數。
標誌
注:
如果在命令列中輸入了 -f(或 -s)標誌,系統將僅接受 -f(或 -s)標誌,將忽略其他標誌。如果同時指定了 -f 和 -s 標誌,系統將僅接受第一個標誌,忽略第二個標誌。
-f 報告從系統啟動後的派生數目。
-i 顯示從系統啟動後每個裝置造成的中斷數目。
-I 用新的輸出欄顯示 I/O 定向檢視,p 在標題 kthr 下;欄 fi 和 fo 在標題頁面下,而不是欄下;re 和 cy 在頁標題中。
-l 還顯示“大頁面”部分,其中包含 alp 和 flp 列。
-s 將總數結構中的內容寫入到標準輸出,該結構包含從系統初始化後調頁事件的絕對計數。-s 標誌只能與 -v 標誌一起使用。如下描述了這些事件:
地址翻譯錯誤
每次發生地址轉換頁面故障時增加。解決頁面故障可能需要 I/O,也可能不需要。儲存保護頁面故障(失去鎖定)不包含在此計數之內。
入頁
隨虛擬記憶體管理器讀入的每頁增加。計數隨調頁空間和檔案空間的入頁增加。它和出頁統計資訊一起表示實際 I/O(由虛擬記憶體管理器啟動)的總量。
出頁
隨虛擬記憶體管理器寫出的每頁增加。計數隨調頁空間和檔案空間的出頁而增加。它和入頁統計資訊一起表示實際 I/O(由虛擬記憶體管理器啟動)的總量。
調頁空間入頁
只隨 VMM 啟動的來自調頁空間的入頁而增加。
調頁空間出頁
只隨 VMM 啟動的來自調頁空間的出頁而增加。
總回收
當不啟用一個新的 I/O 請求也可以滿足地址翻譯錯誤時增加。如果頁面以前已經被 VMM 請求過的,但是 I/O 還沒有完成;或者頁面被預讀演算法提前提取,但是被故障段隱藏了;或者如果頁面已經被放入空閒列表中,但還沒有重新使用,則會發生此情況。
零填充頁面故障
如果頁面故障針對的是工作儲存器,且可以透過指定一個幀並以零填充幀來滿足它的話,則該值增加。
可執行填充頁面故障
隨著每個指令頁面故障而增加。
用時鐘檢查頁面
VMM 利用時鐘演算法實施偽最近最少使用(1ru)的頁面替換模式。時鐘檢查過的頁面是 aged。為每個時鐘檢查過的頁面增加此計數值。
時鐘指標的轉動
隨著每次 VMM 時鐘旋轉而增加(即在每一次完整的記憶體掃描後)。
用時鐘釋放的頁面
隨著時鐘演算法從實記憶體中選擇釋放的每一個頁面而增加。
回溯
隨著解決前一個頁面故障時出現的每一個頁面故障而增加。(必須首先解決新的頁面故障,然後可以回溯到最初的頁面故障。)
空閒幀等待
在收集可用幀時,每次 VMM 等待一個程式時增加。
擴充套件 XPT 等待
每次正在進行提交而使得 VMM 等待一個程式時,隨著正在被訪問的段而增加。
暫掛 I/O 等待
每次 VMM 等待一個程式時隨著要完成的入頁 I/O 而增加。
啟動 I/O
隨著每個被 VMM 啟動的讀取或寫入 I/O 請求而增加。此計數應該與入頁和出頁的總數相等。
iodones
在每次完成 VMM I/O 請求時增加。
CPU 上下文交換
隨著每次 CPU 上下文交換而增加(新程式的分派)。
裝置中斷
每次硬體中斷時增加。
軟體中斷
每次軟體中斷時增加。一次軟體中斷是一個類似於硬體中斷(儲存一些狀態和伺服器例程分支)的機器指令。系統呼叫用軟體中斷指令來完成,該指令轉換控制到系統呼叫處理程式例程。
decrementer 中斷
每次 decrementer 中斷時增加。
mpc 傳送中斷
每次 mpc 傳送中斷時增加。
mpc 接收中斷
每次 mpc 接收中斷時增加。
幻象讀取中斷
每次幻象讀取中斷時增加。
陷阱
不透過作業系統來維護。
syscalls
隨著每次系統呼叫而增加。
-t 列印 vmstat 的每一輸出行旁邊的時間戳記。時間戳記按照 HH:MM:SS 格式顯示。
注:
如果指定了 -f、-s 或 -i 標誌,將不列印時間戳記。
-v 將虛擬記憶體管理器維護的不同統計資訊寫入標準輸出。-v 標誌只能與 -s 標誌一起使用。
記憶體頁
實記憶體的大小(以 4 KB 的頁面數目計)。
lruable 頁
要用於替換的 4 KB 頁面的數目。此數目不包含被用於 VMM 內部頁和用於核心文字的固定部分的頁面。
空閒頁面
空閒 4 KB 頁面的數目。
記憶體池
指定記憶體池數目的調整引數(使用 vmo 管理)。
固定頁面
固定的 4 KB 頁面的數目。
maxpin 百分比
指定能被固定的實記憶體百分數的調整引數(使用 vmo 管理)。
minperm 百分比
實記憶體百分比的調整引數(使用 vmo 管理)。它指定一臨界點,低於此臨界點時阻止頁面重新排程演算法使用檔案頁面。
maxperm 百分比
實記憶體百分比的調整引數(使用 vmo 管理)。它指定一臨界點,高於此臨界點時頁面取走演算法只取走檔案頁面。
numperm 百分比
當前由檔案快取記憶體使用的記憶體百分數。
檔案頁面
當前由檔案快取記憶體使用的 4 KB 頁面的數目。
壓縮百分比
由壓縮頁面使用的記憶體百分數。
壓縮頁面
壓縮記憶體頁面的數目。
numclient 百分數
被客戶機頁面佔用的記憶體百分數。
maxclient 百分數
指定能用於客戶機頁面的最大記憶體百分數的調整引數(使用 vmo 管理)。
客戶機頁面
客戶機頁面的數目。
已排程的遠端出頁
排程用於客戶機檔案系統的出頁的數目。
無 pbuf 而阻塞的暫掛磁碟 I/O
沒有可用 pbuf 而阻塞的暫掛磁碟 I/O 請求的數目。Pbuf 是用於儲存邏輯卷管理器層上的 I/O 請求的固定的記憶體緩衝區。
無 psbuf 而阻塞的調頁空間 I/O
沒有可用 psbuf 而阻塞的調頁空間 I/O 請求的數目。Psbuf 是用於儲存虛擬記憶體管理器層上的 I/O 請求的固定記憶體緩衝區。
-v (由 -v顯示的統計資訊,接上頁):
無 fsbuf 而阻塞的檔案系統 I/O
沒有可用 fsbuf 而阻塞的檔案系統 I/O 請求的數目。Fsbuf 是用於儲存檔案系統層上的 I/O 請求的固定記憶體緩衝區。
無 fsbuf 而阻塞的客戶機檔案系統 I/O
沒有可用 fsbuf 而阻塞的客戶機檔案系統 I/O 請求的數目。NFS(網路檔案系統)和 VxFS(Veritas)是客戶機檔案系統。Fsbuf 是用於儲存檔案系統層上的 I/O 請求的固定記憶體緩衝區。
無 fsbuf 而阻塞的外部頁面排程程式檔案系統 I/O
沒有可用 fsbuf 而被阻塞的外部頁面排程程式客戶機檔案系統 I/O 請求的數目。JFS2 是一個外部頁面排程程式客戶機檔案系統。Fsbuf 是用於儲存檔案系統層上的 I/O 請求的固定記憶體緩衝區。
-w 以寬方式顯示報告

示例
要顯示引導後的統計資訊摘要,請輸入:

vmstat
要顯示 2 秒時間間隔的 5 個摘要,請輸入:
vmstat 2 5
要顯示引導後包括邏輯磁碟 scdisk13 和 scdisk14 的統計資訊摘要,請輸入:

vmstat scdisk13 scdisk14
要顯示派生統計資訊,請輸入:

vmstat -f
要顯示各事件的計數,請輸入:

vmstat -s
要顯示 vmstat的每一輸出欄旁邊的時間戳記,請輸入:

vmstat -t
要以另一套輸出欄顯示 I/O 定向檢視,請輸入:

vmstat -I
要顯示所有可用的 VMM 統計資訊,請輸入:
vmstat -vs
要以 8 秒為時間間隔顯示“大頁面”部分(包含 alp 和 flp 列),請輸入:
vmstat -l 8

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