歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 各種UNIX平台下vmstat與iostat輸出結果詳解

各種UNIX平台下vmstat與iostat輸出結果詳解

日期:2017/2/28 11:15:00   编辑:關於Unix


一點個人積累,共享出來!
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表示被阻塞列線程數目太多。
!阻塞線程數目太多
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 列表示可以進入運行隊列但被交換出來的進程 。
正常
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] 正常
Copyright © Linux教程網 All Rights Reserved