歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux系統中vmstat命令使用詳解

Linux系統中vmstat命令使用詳解

日期:2017/8/19 9:45:22   编辑:Linux技術

  Linux系統中vmstat命令是一個監控工具。下面由學習啦小編為大家整理了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

  Linux系統中vmstat命令詳解實例

  1)[sunjimeng@localhost ~]$ vmstat          顯示虛擬內存使用情況

  [sunjimeng@localhost ~]$ vmstat

  procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

  r b swpd free buff cache si so bi bo in cs us sy id wa st

  5 0 0 858580 752 506988 0 0 7 1 81 120 2 1 97 0 0

  [sunjimeng@localhost ~]$

  字段說明:

  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)[sunjimeng@localhost ~]$ vmstat 2        每二秒顯示一次系統內存的統計信息

  [sunjimeng@localhost ~]$ vmstat 2

  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 0 853508 752 507144 0 0 7 1 80 119 2 1 97 0 0

  0 0 0 853508 752 507144 0 0 0 0 376 466 3 2 96 0 0......

  3)[sunjimeng@localhost ~]$ vmstat 2 5       每二秒顯示一次系統內存的統計信息,總共5次

  [sunjimeng@localhost ~]$ vmstat 2 5

  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 0 853888 752 507152 0 0 7 1 81 119 2 1 97 0 0

  0 0 0 853888 752 507152 0 0 0 0 609 763 5 2 92 0 0

  1 0 0 853888 752 507152 0 0 0 0 582 626 5 2 93 0 0

  0 0 0 853888 752 507152 0 0 0 0 399 464 3 2 95 0 0

  0 0 0 853888 752 507152 0 0 0 0 263 365 3 1 96 0 0

  [sunjimeng@localhost ~]$

  補充:虛擬內存原理

  在系統中運行的每個進程都需要使用到內存,但不是每個進程都需要每時每刻使用系統分配的內存空間。當系統運行所需內存超過實際的物理內存,內核會釋放某些進程所占用但未使用的部分或所有物理內存,將這部分資料存儲在磁盤上直到進程下一次調用,並將釋放出的內存提供給有需要的進程使用。

  在Linux內存管理中,主要是通過“調頁Paging”和“交換Swapping”來完成上述的內存調度。調頁算法是將內存中最近不常使用的頁面換到磁盤上,把活動頁面保留在內存中供進程使用。交換技術是將整個進程,而不是部分頁面,全部交換到磁盤上。

  分頁(Page)寫入磁盤的過程被稱作Page-Out,分頁(Page)從磁盤重新回到內存的過程被稱作Page-In。當內核需要一個分頁時,但發現此分頁不在物理內存中(因為已經被Page-Out了),此時就發生了分頁錯誤(Page Fault)。

  當系統內核發現可運行內存變少時,就會通過Page-Out來釋放一部分物理內存。經管Page-Out不是經常發生,但是如果Page-out頻繁不斷的發生,直到當內核管理分頁的時間超過運行程式的時間時,系統效能會急劇下降。這時的系統已經運行非常慢或進入暫停狀態,這種狀態亦被稱作thrashing(顛簸)

Copyright © Linux教程網 All Rights Reserved