[轉載]Aix vmstat命令解析

hunterjoy發表於2012-03-25

[轉載]Aix vmstat命令解析

(2010-12-26 17:40:08)
標籤:

轉載

分類: AIX基礎
原文地址:fashsh

Aix vmstat命令解析

1 概述
vmstat 命令報告核心執行緒、虛擬記憶體、磁碟、Traps、CPU 活動的統計資料。
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 等待時間。

2 vmstat 命令報告輸出及其解析
# vmstat 1 3
System configuration: lcpu=8 mem=32000MB
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
2 0 3845546 16248 0 1 0 0 0 0 1299 25203 5285 40 3 57 0
1 0 3845572 16220 0 0 0 0 0 0 966 15702 4526 25 2 73 0
0 0 3845631 16159 0 0 0 0 0 0 1199 18302 4975 31 2 66 1
#

2.1 Kthr: kernel thread state(核心執行緒狀態,表示每秒鐘在取樣間隔時間上對各種佇列的核心執行緒數求得的平均值)
r: 取樣期間可執行的核心執行緒的平均數,包括正在執行的執行緒和指準備執行但尚在等待執行的程式。如果這個數字大於CPU的資料,至少有一個執行緒要等待CPU,等待CPU的執行緒越多,越有可能產生效能影響
b:表示每秒VMM等待佇列中的核心執行緒平均數(等待資源或I/O),這裡參考值為2,大於2表示被阻塞列執行緒數目太多。

2.2 Memory(包括虛擬記憶體和實際記憶體的資訊)
avm: 活動的虛擬頁面(Active virtual pages,以4k為單位),該值較高並不意味著效能不好。記住,虛擬記憶體的概念是提供給我們定址大於實記憶體容量的能力(一些在 RAM 記憶體中,而另一些在調頁空間中)。但是如果虛擬記憶體遠大於實記憶體,可能造成過度的頁面排程,從而導致延時。如果 avm 小於 RAM,那麼當 RAM 中填滿檔案頁時就會引起調頁空間的頁面排程。這種情況下,調整 minperm、maxperm 和 maxclient 的值可以減少調頁空間的頁面排程量。
fre: 自由表(free list)的大小。真實記憶體的大部分被用作檔案系統資料的快取。因此,自由表(free list)的大小保持比較小並不稀奇。

2.3 Page:頁面錯誤和分頁活動的資訊。此值為指定時間週期內每秒給定單位的平均值。
re 頁面排程程式(Pager)輸入輸出列表(input/output)列表。
pi 表示每秒鐘從Paging Space置換到記憶體的頁數,調頁空間是駐留在磁碟上的虛擬記憶體的一部分。當記憶體過量使用時,它用作溢位。調頁空間由用於儲存從實記憶體中竊取到的工作組頁面的邏輯卷組成。當程式訪問一個竊取頁時,產生了一個缺頁故障,這一頁必須從調頁空間讀入記憶體。這裡設定pi的參考值為5,大於5說明記憶體不足。
po 表示每秒鐘從記憶體置換到Paging Space的頁數,無論什麼時候竊取工作儲存器的一頁,如果它仍未駐留在調頁空間中或已被修改,那它會被寫入調頁空間。如果不被再次訪問,它會留在頁面排程裝置中直到程式終止或放棄空間。如果包含在出故障頁面中的後續地址引用導致缺頁故障,那麼這些頁面將會由系統個別調進。當一個程式正常終止,任何分配給該程式的調頁空間將被釋放。[如果這兩列持續大於5,則系統的效能瓶頸很可能是記憶體不足,而導致交換頻繁。]
fr 表示每秒鐘頁面置換演算法釋放的頁數。當 VMM 頁面替換例程掃描頁面幀表(Page Frame. Table,PFT)時,它使用一些條件選取要竊取的頁面以插入到可用記憶體幀的空閒列表中。
sr 表示每秒鐘頁面置換演算法檢查的頁數,頁面替換演算法在可以竊取足夠的頁面以滿足頁面替換執行緒的需要之前可能不得不掃描許多頁面幀。
cy 頁面置換演算法所使用的時鐘週期。即表示每秒頁面替換程式碼掃描了 PFT 多少次。因為插入空閒列表可以不需要完全掃描 PFT,並且因為所有的 vmstat 欄位報告為整數,這一欄位通常為 0。

2.4 Faults 故障列:樣例時間週期中,每秒陷阱(Trap )和中斷率的平均值。
in 裝置中斷次數 ,iostat命令輸出更有參考意義。
sy 系統呼叫次數 ,透過明確的系統呼叫,使用者程式可以使用資源。這些呼叫指示核心執行呼叫執行緒的操作,並在核心和該程式之間交換資料。因為工作負載和應用程式變化很大,不同的呼叫執行不同的功能,所以不可能定義每秒鐘有多少系統呼叫才算太多。這裡設定參考值為10000,超過10000,使用者需要注意。
cs 核心執行緒上下文交換 Kernel thread context switches.[即時間片用完後,再輪到時的上下文計算,如果太高,則要仔細觀察]

2.5 CPU:CPU 使用時間百分比細目分類
us 使用者程式CPU佔用,一個 UNIX 程式可以在使用者方式下執行,也可以在系統(核心)方式下執行。當在使用者方式下時,程式在它自己的應用程式程式碼中執行,不需要核心資源來進行計算、管理記憶體或設定變數。
sy 系統程式CPU佔用 ,這包括核心程式(kprocs)和其它需要訪問核心資源的程式所消耗的 CPU 資源。如果一個程式需要核心資源,它必須執行一個系統呼叫,並由此切換到系統方式從而使該資源可用。例如,對一個檔案的讀或寫操作需要核心資源來開啟檔案、尋找特定的位置,以及讀或寫資料,除非使用記憶體對映檔案。這裡us + sy的參考值為80%,如果us+sy 大於 80%說明可能存在CPU不足。
id 系統空閒 CPU idle time
wa 表示IO等待時間,即系統等待未完成的 disk/NFS I/O 請求期間的CPU 空閒時間,
如果us與sy之和持續超過90%時,CPU出現了瓶頸。
如果wa長期很高>50,則表示IO太忙,具體看是應用IO多,還是交換分頁多,如果是後者,則顯示記憶體不足;如果是前者,則應關注應用的IO效能狀況,最佳化應用與磁碟裝置
pc 消耗物理處理器的數目。只在使用共享處理器執行的分割槽顯示(只在微分割槽環境中顯示)
ec 消耗授權容量的百分比。只在使用共享處理器執行的分割槽顯示(只在微分割槽環境中顯示)

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

相關文章