各種unix平臺下iostat與vmstst說明

jolly10發表於2008-06-25
各種unix平臺下iostat與vmstst說明 (ZT)[@more@]

一點個人積累,共享出來!

Linux下vmstat輸出釋疑:

Vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 100152 2436 97200 289740 0 1 34 45 99 33 0 0 99 0

procs
r 列表示執行和等待cpu時間片的程式數,如果長期大於1,說明cpu不足,需要增加cpu。
b 列表示在等待資源的程式數,比如正在等待I/O、或者記憶體交換等。
cpu 表示cpu的使用狀態
us 列顯示了使用者方式下所花費 CPU 時間的百分比。us的值比較高時,說明使用者程式消耗的cpu時間多,但是如果長期大於50%,需要考慮最佳化使用者的程式。
sy 列顯示了核心程式所花費的cpu時間的百分比。這裡us + sy的參考值為80%,如果us+sy 大於 80%說明可能存在CPU不足。
wa 列顯示了IO等待所佔用的CPU時間的百分比。這裡wa的參考值為30%,如果wa超過30%,說明IO等待嚴重,這可能是磁碟大量隨機訪問造成的,也可能磁碟或者磁碟訪問控制器的頻寬瓶頸造成的(主要是塊操作)。
id 列顯示了cpu處在空閒狀態的時間百分比
system 顯示採集間隔內發生的中斷數
in 列表示在某一時間間隔中觀測到的每秒裝置中斷數。
cs列表示每秒產生的上下文切換次數,如當 cs 比磁碟 I/O 和網路資訊包速率高得多,都應進行進一步調查。
memory
swpd 切換到記憶體交換區的記憶體數量(k表示)。如果swpd的值不為0,或者比較大,比如超過了100m,只要si、so的值長期為0,系統效能還是正常
free 當前的空閒頁面列表中記憶體數量(k表示)
buff 作為buffer cache的記憶體數量,一般對塊裝置的讀寫才需要緩衝。
cache: 作為page cache的記憶體數量,一般作為檔案系統的cache,如果cache較大,說明用到cache的檔案較多,如果此時IO中bi比較小,說明檔案系統效率比較好。
swap
si 由記憶體進入記憶體交換區數量。
so由記憶體交換區進入記憶體數量。
IO
bi 從塊裝置讀入資料的總量(讀磁碟)(每秒kb)。
bo 塊裝置寫入資料的總量(寫磁碟)(每秒kb)
這裡我們設定的bi+bo參考值為1000,如果超過1000,而且wa值較大應該考慮均衡磁碟負載,可以結合iostat輸出來分析。


Solairs系統下vmstat輸出釋疑

vmstat 5 5
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr s1 s1 -- -- in sy cs us sy id
0 0 0 704968 207640 0 1 2 0 0 0 0 0 0 0 0 302 6 31 0 0 100
0 0 0 705048 206728 1 2 0 0 0 0 0 0 0 0 0 302 4 34 0 0 100
0 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 302 3 35 0 0 100
0 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 301 3 34 0 0 100
0 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 302 6 35 0 0 100
procs
r 列表示在執行佇列中等待的程式數。
b 列表示在等待資源的程式數,比如正在等待I/O、或者記憶體交換等。
w 列表示可以進入執行佇列但被交換出來的程式
cpu 表示cpu的使用狀態
us 列顯示了使用者方式下所花費 CPU 時間的百分比。一個 UNIX 程式可以在使用者方式下執行,也可以在系統(核心)方式下執行。當在使用者方式下時,程式在它自己的應用程式程式碼中執行,不需要核心資源來進行計算、管理記憶體或設定變數。
sy 列詳述了 CPU 在系統方式下執行一個程式所花時間的百分比。這包括核心程式(kprocs)和其它需要訪問核心資源的程式所消耗的 CPU 資源。如果一個程式需要核心資源,它必須執行一個系統呼叫,並由此切換到系統方式從而使該資源可用。例如,對一個檔案的讀或寫操作需要核心資源來開啟檔案、尋找特定的位置,以及讀或寫資料,除非使用記憶體對映檔案。這裡us + sy的參考值為80%,如果us+sy 大於 80%說明可能存在CPU不足。
id 列顯示了沒有未決本地磁碟 I/O 時 CPU 空閒或等待的時間百分比。
faults 顯示採集間隔內發生的中斷數
in 列表示在某一時間間隔中觀測到的每秒裝置中斷數。iostat命令輸出更有參考意義。
sy 列表示在某一時間間隔中觀測到的每秒系統呼叫次數。透過明確的系統呼叫,使用者程式可以使用資源。這些呼叫指示核心執行呼叫執行緒的操作,並在核心和該程式之間交換資料。因為工作負載和應用程式變化很大,不同的呼叫執行不同的功能,所以不可能定義每秒鐘有多少系統呼叫才算太多。這裡設定參考值為10000,超過10000,使用者需要注意。
cs 列表示,如當 cs 比磁碟 I/O 和網路資訊包速率高得多,都應進行進一步調查。
memory
swap 當前可用記憶體交換區容量(k表示)。
free 當前的空閒頁面列表中記憶體數量(k表示)
page
re 列表示回收的頁面數。
mf 列表示小級別錯誤計數。
pi 列表示進入頁面數 (k表示)。
po 列表示出頁面數(k表示)。
fr 列表示空餘的頁面數(k表示)。
de 列表示提前讀入的頁面中的未命中數。
sr 列表示透過時鐘演算法掃描的頁面計數

solairs下iostat釋疑

iostat -xtc 5 2
extended device statistics tty cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id
sd1 0.3 0.0 3.4 0.1 0.0 0.0 13.2 0 0 0 0 0 0 0 100
sd15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
extended device statistics tty cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id
sd1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 77 0 0 0 100
sd15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0

tty和CPU使用率報告
tin 顯示了系統為所有 tty 讀取的字元總數。
tout 顯示了系統為所有 tty 寫入的字元總數。
us 顯示了在使用者級應用程式在預設的優先順序別執行時的 CPU 使用率百分比。
sy 顯示了在使用者級應用程式在降低優先順序執行時的 CPU 使用率百分比。
wt 顯示了在系統級(核心)執行時生成的 CPU 使用率。
id 顯示了 CPU 空閒期間系統有未完成的磁碟 I/O 請求時的時間百分比。
磁碟使用率報告
device 被統計的硬碟裝置名,包括nfs裝置。
r/s 表示每秒鐘讀的次數
w/s 表示每秒鐘寫的次數
kr/s 表示每秒鐘讀的K位元組數
kw/s 表示每秒鐘寫的K位元組數
wait 表示平均多少個傳輸等待被處理,相當於讀寫等待佇列長度
actv 表示平均多少個傳輸從讀寫等待佇列中移出做處理
svc_t 表示每次硬碟傳輸平均耗費的時間,以毫秒為單位,這裡我們設定的參考值為30ms,超過說明硬碟負載太多
%w 表示每次傳輸所消耗時間裡面,等待所佔的百分比
%b 表示硬碟忙的時間所佔百分比,這裡我們設定參考值為5%,超過5%說明硬碟負載太多,最好採取以下步驟:
1.)調整應用,令其使用磁碟i/o更加有效率,可以透過修改磁碟佇列、使用應用伺服器的cache
2.)將檔案系統分佈到2個或多個磁碟上,並使用volume manager/disksuite的條帶化特點
3.) 增加系統引數值,如inode cache , ufs_ninode。


AIX下vmstat釋疑:

# vmstat 5 20
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 1 244528 1227 0 3 3 56 151 0 404 1420 1415 4 2 88 6
2 6 244538 1241 0 39 148 2424 3511 0 904 4660 7571 49 12 2 38
5 3 244540 791 0 2 221 3937 6077 0 1183 6605 24619 44 34 1 21
1 7 245326 1009 0 11 331 1071 1934 0 884 3788 13000 23 25 0 52

分析如下:
kthr
kthr列表示每秒鐘在取樣間隔時間上對各種佇列中的核心執行緒數求得的平均值
r 列表示可執行的核心執行緒平均數,包括正在執行的執行緒和正在等待 CPU的執行緒。如果這個數字大於 CPU 的數目,至少有一個執行緒要等待 CPU,等待 CPU 的執行緒越多,越有可能對效能產生影響。
b 列表示每秒 VMM 等待佇列中的核心執行緒平均數。這包括正在等待檔案系統 I/O 的執行緒,或由於記憶體裝入控制而暫掛的執行緒。這裡參考值為2,大於2表示被阻塞列執行緒數目太多。
[b] !阻塞執行緒數目太多
CPU
us 列顯示了使用者方式下所花費 CPU 時間的百分比。一個 UNIX 程式可以在使用者方式下執行,也可以在系統(核心)方式下執行。當在使用者方式下時,程式在它自己的應用程式程式碼中執行,不需要核心資源來進行計算、管理記憶體或設定變數。
sy 列詳述了 CPU 在系統方式下執行一個程式所花時間的百分比。這包括核心程式(kprocs)和其它需要訪問核心資源的程式所消耗的 CPU 資源。如果一個程式需要核心資源,它必須執行一個系統呼叫,並由此切換到系統方式從而使該資源可用。例如,對一個檔案的讀或寫操作需要核心資源來開啟檔案、尋找特定的位置,以及讀或寫資料,除非使用記憶體對映檔案。這裡us + sy的參考值為80%,如果us+sy 大於 80%說明可能存在CPU不足。
id 列顯示了沒有未決本地磁碟 I/O 時 CPU 空閒或等待的時間百分比。
wa 列詳細顯示了暫掛本地磁碟 I/O 和 NFS 載入的磁碟的 CPU 空閒百分比。這裡參考值為25%,大於25% 可能表示磁碟子系統可能沒有被正確平衡,或者這也可能是磁碟密集工作負載的結果。
[us]+[sy] !IO不平衡
[wa] 正常
fault
in 列表示在某一時間間隔中觀測到的每秒裝置中斷數。iostat命令輸出更有參考意義。
sy 列表示在某一時間間隔中觀測到的每秒系統呼叫次數。透過明確的系統呼叫,使用者程式可以使用資源。這些呼叫指示核心執行呼叫執行緒的操作,並在核心和該程式之間交換資料。因為工作負載和應用程式變化很大,不同的呼叫執行不同的功能,所以不可能定義每秒鐘有多少系統呼叫才算太多。這裡設定參考值為10000,超過10000,使用者需要注意。
cs 列表示,如當 cs 比磁碟 I/O 和網路資訊包速率高得多,都應進行進一步調查。
[sy] 正常
memory
avm 列表示在收集 vmstat 樣本時存在的活動虛擬記憶體頁面數(4k為單位)。理想情況下, avm 應該比總 RAM 數小。如果不是,可能會出現一些虛擬記憶體頁面排程量。有多少頁面排程發生取決於兩個值之間的差值。記住,虛擬記憶體的概念是提供給我們定址大於實記憶體容量的能力(一些在 RAM 記憶體中,而另一些在調頁空間中)。但是如果虛擬記憶體遠大於實記憶體,可能造成過度的頁面排程,從而導致延時。如果 avm 小於 RAM,那麼當 RAM 中填滿檔案頁時就會引起調頁空間的頁面排程。這種情況下,調整 minperm、maxperm 和 maxclient 的值可以減少調頁空間的頁面排程量。
fre 列顯示出空閒記憶體頁面的平均數量(4k為單位)。VMM 在空閒列表上儲存的最少頁面數由 minfree 引數決定。這裡的參考值為maxfree的預設值720,小於720說明存在記憶體系統顛簸。
[fre] 正常
[avm] avm的值約為:958MB
page
pi 列詳細描述了從調頁空間調入的頁數。調頁空間是駐留在磁碟上的虛擬記憶體的一部分。當記憶體過量使用時,它用作溢位。調頁空間由用於儲存從實記憶體中竊取到的工作組頁面的邏輯卷組成。當程式訪問一個竊取頁時,產生了一個缺頁故障,這一頁必須從調頁空間讀入記憶體。這裡設定pi的參考值為5,大於5說明記憶體不足。
po 列顯示了調出到調頁空間的頁面數(速率)。無論什麼時候竊取工作儲存器的一頁,如果它仍未駐留在調頁空間中或已被修改,那它會被寫入調頁空間。如果不被再次訪問,它會留在頁面排程裝置中直到程式終止或放棄空間。如果包含在出故障頁面中的後續地址引用導致缺頁故障,那麼這些頁面將會由系統個別調進。當一個程式正常終止,任何分配給該程式的調頁空間將被釋放。
fr 列表示在一定時間間隔內根據頁面替換演算法每秒所釋放的頁數。當 VMM 頁面替換例程掃描頁面幀表(Page Frame Table,PFT)時,它使用一些條件選取要竊取的頁面以插入到可用記憶體幀的空閒列表中。
sr 列表示在一定時間間隔內根據頁面替換演算法每秒所檢查的頁面數。頁面替換演算法在可以竊取足夠的頁面以滿足頁面替換執行緒的需要之前可能不得不掃描許多頁面幀。
cy 列表示每秒頁面替換程式碼掃描了 PFT 多少次。因為插入空閒列表可以不需要完全掃描 PFT,並且因為所有的 vmstat 欄位報告為整數,這一欄位通常為 0。
這裡設定fr:sr的參考值為3,超過說明記憶體不足。
[pi] !存在記憶體不足
[fr:sr] 正常


AIX命令iostat釋疑


# iostat hdisk1 hdisk2 5 5

tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 0.3 0.2 0.4 99.4 0.1

Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk2 0.1 1.0 0.2 45090 51075
hdisk1 0.0 0.0 0.0 0 0

tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 70.6 45 54 99.4 0.0

Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk2 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0

tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 70.6 0.0 0.4 99.6 0.0

Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk2 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
分析結果
tty和CPU使用率報告
tin 顯示了系統為所有 tty 讀取的字元總數。
tout 顯示了系統為所有 tty 寫入的字元總數。
% user 顯示了在使用者級(應用程式)執行時生成的 CPU 使用率百分比。
% sys 顯示了在系統級(核心)執行時生成的 CPU 使用率百分比。
% idle 顯示了在 CPU 空閒並且系統沒有未完成的磁碟 I/O 請求時的時間百分比。
% iowait 顯示了 CPU 空閒期間系統有未完成的磁碟 I/O 請求時的時間百分比。
[user][+][sys] !CPU能力不足
[wait] 正常
磁碟使用率報告
% tm_act 表示物理磁碟處於活動狀態的時間百分比(驅動器的頻寬使用率)。
Kbps 表示以 KB 每秒為單位的傳輸(讀或寫)到驅動器的資料量。
tps 表示每秒鐘輸出到物理磁碟的傳輸次數。一次傳輸就是一個對物理磁碟的 I/O 請求。多個邏輯請求可被併為對磁碟的一個單一 I/O 請求。傳輸具有不確定的大小。
Kb_read 讀取的 KB 總數。
Kb_wrtn 寫入的 KB 總數。
磁碟負載均衡評估 正常
頻寬使用評估 頻寬值為:0Kbps


Hp-UNIX 命令vmstat釋疑


# vmstat 5 5
procs memory page faults cpu
r b w avm free re at pi po fr de sr in sy cs us sy id
2 0 0 52260 24324 9 4 0 0 0 0 1 109 427 81 2 1 97
2 0 0 52260 24285 0 0 0 0 0 0 0 110 207 90 0 0 99
1 0 0 56211 24285 0 0 0 0 0 0 0 106 192 80 0 0 100
1 0 0 56211 24285 0 0 0 0 0 0 0 107 152 76 0 0 100
2 0 0 56552 24285 0 0 0 0 0 0 0 106 154 72 0 0 100

分析結果
procs
r 列表示在執行佇列中等待的程式數。
b 列表示在等待資源的程式數,比如正在等待I/O、或者記憶體交換等。
w 列表示可以進入執行佇列但被交換出來的程式 。
[b] 正常
cpu 表示cpu的使用狀態
us 列顯示了使用者方式下所花費 CPU 時間的百分比。一個 UNIX 程式可以在使用者方式下執行,也可以在系統(核心)方式下執行。當在使用者方式下時,程式在它自己的應用程式程式碼中執行,不需要核心資源來進行計算、管理記憶體或設定變數。
sy 列詳述了 CPU 在系統方式下執行一個程式所花時間的百分比。這包括核心程式(kprocs)和其它需要訪問核心資源的程式所消耗的 CPU 資源。如果一個程式需要核心資源,它必須執行一個系統呼叫,並由此切換到系統方式從而使該資源可用。例如,對一個檔案的讀或寫操作需要核心資源來開啟檔案、尋找特定的位置,以及讀或寫資料,除非使用記憶體對映檔案。這裡us + sy的參考值為80%,如果us+sy 大於 80%說明可能存在CPU不足。
id 列顯示了沒有未決本地磁碟 I/O 時 CPU 空閒或等待的時間百分比。
[us]+[sy] 正常
fault 顯示採集間隔內發生的中斷數
in 列表示在某一時間間隔中觀測到的每秒裝置中斷數。iostat命令輸出更有參考意義。
sy 列表示在某一時間間隔中觀測到的每秒系統呼叫次數。透過明確的系統呼叫,使用者程式可以使用資源。這些呼叫指示核心執行呼叫執行緒的操作,並在核心和該程式之間交換資料。因為工作負載和應用程式變化很大,不同的呼叫執行不同的功能,所以不可能定義每秒鐘有多少系統呼叫才算太多。這裡設定參考值為10000,超過10000,使用者需要注意。
cs 列表示,如當 cs 比磁碟 I/O 和網路資訊包速率高得多,都應進行進一步調查。
[sy] 正常
memory
avm 當前啟用的虛擬記憶體數量(k表示)。
free 當前的空閒頁面列表中記憶體數量(k表示)
[free] 正常
page
re 列表示回收的頁面數。
at 列表示地址翻譯錯誤計數。
pi 列表示進入頁面數 (k表示)。
po 列表示出頁面數(k表示)。
fr 列表示空餘的頁面數(k表示)。
de 列表示提前讀入的頁面中的未命中數。
sr 列表示透過時鐘演算法掃描的頁面計數
[po] 正常
[fr:sr] 正常


Hp-unix下iostat釋疑


# iostat 5 5

device bps sps msps

c0t6d0 0 0.0 1.0

c0t6d0 2 1.0 1.0

c0t6d0 2 0.8 1.0

c0t6d0 4 2.0 1.0

c0t6d0 2 1.0 1.0
分析結果
緩衝區效能分析
device: iostat統計的裝置名稱。
bps: 每秒該裝置傳輸的K位元組數。
sps: 每秒檢索該裝置次數。
msps: 平均每次檢索所花費的時間,單位毫秒。
[bps] 正常

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

相關文章