1. 程式人生 > >Linux vmstat命令實際操作

Linux vmstat命令實際操作

vmstat是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,可對作業系統的虛擬記憶體、程序、CPU活動進行監控。它能夠對系統的整體情況進行統計,無法對某個程序進行深入分析。vmstat 工具提供了一種低開銷的系統性能觀察方式。

(1)用法

用法:  vmstat  [選項引數]

或  vmstat  [選項引數]  [數字]  [數字]

(2)功能:

功能:  報告虛擬記憶體的統計資訊,關於程序、記憶體、I/O等系統整體執行狀態。

(3)選項引數:

1) -d:        顯示磁碟相關統計資訊。

2) -a:          顯示活躍和非活躍記憶體

3) -f:         顯示從系統啟動至今的fork數量。

4) -p:          顯示指定磁碟分割槽統計資訊

5) -s:          顯示記憶體相關統計資訊及多種系統活動數量。

6) -m:        顯示slabinfo

(4)例項:

1) 、vmstat          //顯示虛擬記憶體使用情況

Linux vmstat命令實際操作

欄位說明:

1.Procs(程序)

r: 執行佇列中程序數量,這個值也可以判斷是否需要增加CPU。(長期大於1)

b: 等待IO的程序數量。

2.Memory(記憶體)

swpd: 使用虛擬記憶體大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。

free: 空閒實體記憶體大小。

buff: 用作緩衝的記憶體大小。

cache: 用作快取的記憶體大小,如果cache的值大的時候,說明cache處的檔案數多,如果頻繁訪問到的檔案都能被cache處,那麼磁碟的讀IO bi會非常小。

3.Swap

si: 每秒從交換區寫到記憶體的大小,由磁碟調入記憶體。

so: 每秒寫入交換區的記憶體大小,由記憶體調入磁碟。

注意:

記憶體夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統性能會受到影響,磁碟IO和CPU資源都會被消耗。有些朋友看到空閒記憶體(free)很少的或接近於0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。

4.IO(現在的Linux版本塊的大小為1kb)

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

注意:

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

5.system(系統)

in: 每秒中斷數,包括時鐘中斷。

cs: 每秒上下文切換數。

注意:

上面2個值越大,會看到由核心消耗的CPU時間會越大。

6.CPU(以百分比表示)

  us: 使用者程序執行時間百分比(user time) us的值比較高時,說明使用者程序消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程式演算法或者進行加速。

  sy: 核心系統程序執行時間百分比(system time) sy的值高時,說明系統核心消耗的CPU資源多,這並不是良性表現,我們應該檢查原因。

  wa: IO等待時間百分比 wa的值高時,說明IO等待比較嚴重,這可能由於磁碟大量作隨機訪問造成,也有可能磁碟出現瓶頸(塊操作)。

  id: 空閒時間百分比

2)、vmstat 2        每二秒顯示一次系統記憶體的統計資訊

Linux vmstat命令實際操作

3)、vmstat 2 5       每二秒顯示一次系統記憶體的統計資訊,總共5次 

Linux vmstat命令實際操作

4)、vmstat -d       顯示磁碟的資訊

Linux vmstat命令實際操作

merged:表示一次來自於合併的寫/讀請求,一般系統會把多個連線/鄰近的讀/寫請求合併到一起來操作。

5)、vmstat -a       顯示活躍記憶體與非活躍記憶體

使用-a選項顯示活躍和非活躍記憶體時,所顯示的內容除增加inact和active外,其他顯示內容與例子1相同。

Linux vmstat命令實際操作

6)、vmstat -f      檢視系統已經被fork多少次

Linux vmstat命令實際操作

7)、vmstat -p tmpfs  檢視特定磁碟裝置的

說明:
  這些資訊主要來自於/proc/diskstats。
  reads:         來自於這個分割槽的讀的次數。
  read sectors:      來自於這個分割槽的讀扇區的次數。
  writes:         來自於這個分割槽的寫的次數。
  requested writes:   來自於這個分割槽的寫請求次數。

Linux vmstat命令實際操作

8)、vmstat -m        顯示slabinfo

Linux vmstat命令實際操作