CPU使用率檢視vmstat命令解析

2021-08-24 23:36:54 字數 3998 閱讀 5425

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...