vmstat命令的含義為顯示虛擬記憶體狀態(「viryual memor statics」),但是它可以報告關於程序、記憶體、i/o等系統整體執行狀態。
vmstat --h 檢視命令的使用方式
usage: vmstat [-v] [-n] [delay [count]]
-v prints version.
-n causes the headers not to be reprinted regularly.
-a print inactive/active page stats. 顯示活動內頁;
-d prints disk statistics
-d prints disk table
-p prints disk partition statistics
-s prints vm table
-m prints slabinfo
-t add timestamp to output
-s unit size
delay is the delay between updates in seconds.
unit size k:1000 k:1024 m:1000000 m:1048576 (default is k)
count is the number of updates.
語法
vmstat(選項)(引數)
選項
-a:顯示活動內頁;
-f:顯示啟動後建立的程序總數;
-m:顯示slab資訊;
-n:頭資訊僅顯示一次;
-s:以**方式顯示事件計數器和記憶體狀態;
-d:報告磁碟狀態;
-p:顯示指定的硬碟分割槽狀態;
-s:輸出資訊的單位。
引數
事件間隔:狀態資訊重新整理的時間間隔;
次數:顯示報告的次數。
例項1
vmstat 3 每隔三秒顯示一行(動態重新整理)
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0
0 0 320 42188 167332 1534392 0 0 0 0 1002 39 0 0 100 0 0
0 0 320 42188 167336 1534392 0 0 0 19 1002 44 0 0 100 0 0
0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0
0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 356328 41132644 4100840 144676384 0 0 0 13 0 0 4 1 95 0 0
5 0 356328 41132012 4100840 144676544 0 0 0 472 103030 212380 2 1 96 0 0
15 0 356328 41132100 4100840 144676816 0 0 0 156 99893 210538 2 1 96 0 0
4 0 356328 41130972 4100840 144677184 0 0 134 1060 102517 220221 3 1 96 0 0
2 0 356328 41132620 4100840 144677456 0 0 0 356 103281 218220 3 1 96 0 0
4 0 356328 41133852 4100840 144677632 0 0 0 300 105032 219078 2 1 96 0 0
2 0 356328 41135804 4100840 144677872 0 0 0 340 107607 215871 2 2 96 0 0
1 0 356328 41139744 4100840 144678208 0 0 0 380 109087 222073 2 1 96 0 0
1 0 356328 41140180 4100840 144678368 0 0 0 516 106340 218832 3 1 96 0 0
16 0 356328 41127512 4100840 144679808 0 0 0 1460 100483 208415 3 2 96 0 0
字段說明
1、procs(程序)
2、memory(記憶體)
3、swap
注意:記憶體夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統效能會受到影響,磁碟io和cpu資源都會被消耗。有些朋友看到空閒記憶體(free)很少的或接近於0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統效能這時不會受到影響的。
4、io(現在的linux版本塊的大小為1kb)
注意:隨機磁碟讀寫的時候,這2個值越大(如超出1024k),能看到cpu在io等待的值也會越大。
5、system(系統)
每秒上下文切換次數,例如我們呼叫系統函式,就要進行上下文切換,執行緒的切換,也要程序上下文切換,這個值要越小越好,太大了,要考慮調低執行緒或者程序的數目,例如在apache和nginx這種web伺服器中,我們一般做效能測試時會進行幾千併發甚至幾萬併發的測試,選擇web伺服器的程序可以由程序或者執行緒的峰值一直下調,壓測,直到cs到乙個比較小的值,這個程序和執行緒數就是比較合適的值了。系統呼叫也是,每次呼叫系統函式,我們的**就會進入核心空間,導致上下文切換,這個是很耗資源,也要盡量避免頻繁呼叫系統函式。上下文切換次數過多表示你的cpu大部分浪費在上下文切換,導致cpu幹正經事的時間少了,cpu沒有充分利用,是不可取的。
注意:上面2個值越大,會看到由核心消耗的cpu時間會越大。
6、cpu(以百分比表示)
us的值比較高時,說明使用者程序消耗的cpu時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程式演算法或者進行加速。
sy的值高時,說明系統核心消耗的cpu資源多,這並不是良性表現,我們應該檢查原因。
wa的值高時,說明io等待比較嚴重,這可能由於磁碟大量作隨機訪問造成,也有可能磁碟出現瓶頸(塊操作)。
注釋:us+sy+id=100(有時可能會出現小於???)
例項2一般vmstat工具的使用是通過兩個數字引數來完成的,第乙個引數是取樣的時間間隔數,單位是秒,第二個引數是取樣的次數
vmstat 2 1 (只獲取一行結果)
2表示每個兩秒採集一次伺服器狀態,1表示只採集一次。
參考:
檢視CPU使用率
rem 如果wmi服務 服務名為winmgmt 壞掉了,需要到system32 webm目錄下執行如下注釋的命令 remfor i in dll do regsvr32 s i remregsvr32 s scrcons.exe remrem regsvr32 s wbemtest.exe remr...
ORACLE 檢視CPU 使用率
cpu 使用率 可以提供有關oracle db cpu 佔用率資訊的檢視至少有以下三種 如果執行的是oracle db 資源管理器,v rsrc consumer group可以基於每個 使用者組顯示cpu 佔用率的統計資訊。此檢視顯示與當前活動的資源使用者組相關 的資料。v sysstat顯示所有...
ucos中對CPU使用率檢視
首先設定 define os task stat en 1 在osinit 中就建立了統計任務 if os task stat en 0 void os taskstat void p arg max osidlectrmax 100l for else else ostaskstathook in...