11.5 vmstat:虛擬內存統計

vmstat

vmstat是Virtual Memory Statistics(虛擬內存統計)的縮寫,利用vmstat命令能夠對操做系統的內存信息、進程狀態和CPU活動等進行監視。可是隻能對系統的總體狀況進行統計,沒法對某個進程進行深刻分析。

【語法格式】

vmstat foption [delay fcountl]
vmstat  [選項]   [時間間隔(次數]
 
1)在vmstat命令及後面的選項裏,每一個元素之間都至少要有一個空格。
2)delay表示兩次輸出之間的間隔時間。
3)count表示按照delay指定的時間間隔統計的次數。

【選項說明】

-a    顯示活躍和非活躍內存
-f    顯示從系統啓動至今的fork進程數量
-m    顯示slab信息
-n    只在開始時顯示一次各字段名稱
-s    顯示內存相關統計信息及多種系統活動數量深
-d    顯示磁盤相關統計信息
-p    顯示指定磁盤分區統計信息
-S    使用指定單位顯示。參數有k、K、m、M,分別表明1000、102四、1000000、1048576字節(byte)。默認單位爲K(1024byte)
-t     統計信息帶上時間戳
 
 
[root@lewen ~]# vmstat   #<行若是省略「間隔時間」和「次數」的參數,則僅顯示一次報告後
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2  0      0 2792792   2108 790956    0    0    15    20   61  146  0  0 99  0  0
 
 
如下是命令結果的詳細說明。
第1列:procs。
  r列表示運行和等待CPU時間片的進程數。
  b列表示正在等待資源的進程數。
第2列:memory。
  swpd列表示使用虛擬內存的大小。
  free列表示當前空閒的物理內存數量。
  buff列表示buffers的內存數量。
  cache列表示cache的內存數量。
第3列:swap。
  si(swap in)列表示由磁盤調入內存,也就是內存進入內存交換區的數量。
  so(swap out)列表示由內存調入磁盤,也就是內存交換區進入內存的數量。
第4列:I/O項顯示磁盤讀寫情況。
  bi列表示從塊設備讀入數據的總量(即讀磁盤)(塊/s)。
  bo列表示寫入塊設備的數據總量(即寫磁盤)(塊/s)。
第5列:system顯示採集間隔內發生的中斷數。
  in列表示在某一時間間隔中觀測到的每秒設備中斷數。
  cs列表示每秒產生的上下文切換次數。
第6列:CPU項顯示了CPU的使用狀態。
  us列顯示了用戶進程消耗的CPU時間百分比。
  sy列顯示了系統(內核)進程消耗的CPU時間百分比。
  id列顯示了CPU處在空閒狀態的時間百分比。
  wa列顯示了I/0等待所佔用的CPU時間百分比。
  st列顯示了虛擬機佔用的CPU時間的百分比。

顯示活躍和非活躍內存

[root@lewen ~]# vmstat -aS M 2 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
2  0      0   2727    290    657    0    0    15    20   61  146  0  0 99  0  0
0  0      0   2727    290    657    0    0     0     0   53  118  0  0 100  0  0
0  0      0   2727    290    657    0    0     0     0   51  112  1  1 99  0  0
 
 
使用-a選項顯示活躍和非活躍內存時,所顯示的內容除去增長了inact和active以外,其餘顯示內容與範例11-12相同。
memory列增長了inact和active兩列,其說明具體以下。
inact:非活躍的內存大小(當使用-a選項時顯示)。
active:活躍的內存大小(當使用-a選項時顯示)。

查看內存使用的詳細信息

[root@lewen ~]# vmstat -s  
      4026348 K total memory
       440568 K used memory
       673792 K active memory
       297756 K inactive memory
      2792680 K free memory
         2108 K buffer memory
       790992 K swap cache
 
 
這些信息分別來自於/proc/meminfo、/proc/stat和/proc/vmstat。

查看磁盤的讀/寫

[root@lewen ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda     8333      8  673201  140450  21689   1376  907042   61431      0     73
sr0       18      0    2056     678      0      0       0       0      0      0
dm-0    6339      0  648333  139872  23055      0  902906   75051      0     73
dm-1      90      0    4920       7      0      0       0       0      0      0
 
這些信息主要來自於/proc/diskstats。其中的merged表示一次來自於合併的寫/讀請求,系統通常會把多個鏈接/鄰近的讀/寫請求合併到一塊兒來操做。

查看/dev/sda1磁盤的讀寫統計信息

[root@lewen ~]# vmstat -p /dev/sda1
sda1          reads   read sectors  writes    requested writes
                1799      12364         10       4136
這些信息主要來自於/proc/diskstats。各列的說明具體以下。
reads:來自於該分區的讀的次數。
read sectors:來自於該分區的讀扇區的次數。
writes:來自於該分區的寫的次數。
requested writes:來自於該分區的寫請求次數。
相關文章
相關標籤/搜索