天天一個linux命令:vmstat

一、命令簡介

vmstat(Virtual Memory Statistics 虛擬內存統計) 命令用來顯示Linux系統虛擬內存狀態,也能夠報告關於進程、內存、I/O等系統總體運行狀態。linux

二、用法算法

vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]

三、選項

-a:顯示活躍和非活躍內存
-f:顯示從系統啓動至今的fork數量 。
-m:顯示slabinfo
-n:只在開始時顯示一次各字段名稱。
-s:顯示內存相關統計信息及多種系統活動數量。
delay:刷新時間間隔。若是不指定,只顯示一條結果。 count:刷新次數。若是不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮。
-d:顯示磁盤相關統計信息。
-p:顯示指定磁盤分區統計信息
-S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別表明1000、102四、1000000、1048576字節(byte)。默認單位爲K(1024 bytes)
-V:顯示vmstat版本信息。

四、示例

示例1:vmstat 命令說明

image

Procs(進程)
r: 運行隊列中進程數量,這個值也能夠判斷是否須要增長CPU。(長期大於1)
b 等待IO的進程數量。
Memory(內存)
swpd 使用虛擬內存大小,若是swpd的值不爲0,可是SI,SO的值長期爲0,這種狀況不會影響系統性能。
free 空閒物理內存大小。
buff 用做緩衝的內存大小。
cache 用做緩存的內存大小,若是cache的值大的時候,說明cache處的文件數多,若是頻繁訪問到的文件都能被cache處,那麼磁盤的讀IO bi會很是小。

Swap
si 每秒從交換區寫到內存的大小,由磁盤調入內存。
so 每秒寫入交換區的內存大小,由內存調入磁盤。

注意:內存夠用的時候,這2個值都是0,若是這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閒內存(free)不多的或接近於0時,就認爲內存不夠用了,不能光看這一點,還要結合si和so,若是free不多,可是si和so也不多(大多時候是0),那麼不用擔憂,系統性能這時不會受到影響的。由於linux老是先把內存用光 緩存

IO
bi 每秒讀取的塊數
bo 每秒寫入的塊數

注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。 oracle

system(系統)
in 每秒中斷數,包括時鐘中斷。
cs 每秒上下文切換數。

注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。 app

CPU(以百分比表示)
us 用戶進程執行時間百分比(user time) us的值比較高時,說明用戶進程消耗的CPU時間多,可是若是長期超50%的使用,那麼咱們就該考慮優化程序算法或者進行加速。
sy: 內核系統進程執行時間百分比(system time) sy的值高時,說明系統內核消耗的CPU資源多,這並非良性表現,咱們應該檢查緣由。
wa IO等待時間百分比 wa的值高時,說明IO等待比較嚴重,這可能因爲磁盤大量做隨機訪問形成,也有可能磁盤出現瓶頸(塊操做)。
id 空閒時間百分比
 
實例2:vmstat –a 顯示活躍和非活躍內存,顯示增長了inact和active列,

image

示例3: vmstat -s 查看內存使用的詳細信息
[root@oracledb ~]# vmstat -s
      3922280  total memory
      1294648  used memory
       705808  active memory
       398728  inactive memory
      2627632  free memory
       132816  buffer memory
       802932  swap cache
      8339448  total swap
            0  used swap
      8339448  free swap
         2162 non-nice user cpu ticks
           46 nice user cpu ticks
         3257 system cpu ticks
      3015131 idle cpu ticks
         1685 IO-wait cpu ticks
          582 IRQ cpu ticks
          269 softirq cpu ticks
            0 stolen cpu ticks
       935206 pages paged in
        43585 pages paged out
            0 pages swapped in
            0 pages swapped out
       532677 interrupts
       656731 CPU context switches
   1461999263 boot time
         5706 forks
示例4: vmstat -d 查看磁盤的讀/寫
[root@oracledb ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
ram0       0      0       0       0      0      0       0       0      0      0
ram1       0      0       0       0      0      0       0       0      0      0
ram2       0      0       0       0      0      0       0       0      0      0
ram3       0      0       0       0      0      0       0       0      0      0
ram4       0      0       0       0      0      0       0       0      0      0
ram5       0      0       0       0      0      0       0       0      0      0
ram6       0      0       0       0      0      0       0       0      0      0
ram7       0      0       0       0      0      0       0       0      0      0
ram8       0      0       0       0      0      0       0       0      0      0
ram9       0      0       0       0      0      0       0       0      0      0
ram10      0      0       0       0      0      0       0       0      0      0
ram11      0      0       0       0      0      0       0       0      0      0
ram12      0      0       0       0      0      0       0       0      0      0
ram13      0      0       0       0      0      0       0       0      0      0
ram14      0      0       0       0      0      0       0       0      0      0
ram15      0      0       0       0      0      0       0       0      0      0
loop0      0      0       0       0      0      0       0       0      0      0
loop1      0      0       0       0      0      0       0       0      0      0
loop2      0      0       0       0      0      0       0       0      0      0
loop3      0      0       0       0      0      0       0       0      0      0
loop4      0      0       0       0      0      0       0       0      0      0
loop5      0      0       0       0      0      0       0       0      0      0
loop6      0      0       0       0      0      0       0       0      0      0
loop7      0      0       0       0      0      0       0       0      0      0
sr0        0      0       0       0      0      0       0       0      0      0
sda    26814  24219 1867212   35021   3238   7679   87202    8343      0     22
示例5: 查看/dev/sda1磁盤的讀/寫
[root@oracledb ~]# vmstat -p /dev/sda1 
sda1          reads   read sectors  writes    requested writes
                 666       5466          7         50
相關文章
相關標籤/搜索