vmstat使用文檔

vmstat

vmstat [options] [delay [count]]
報告虛擬內存的統計數據

描述

  • vmstat報告進程、內存、頁面、塊IO、陷入、磁盤、以及CPU活動的信息
  • 第一個報告產生的是從最近一次重啓以來的平均數據。
  • 額外的報告給出的信息是在一個長度爲delay的採樣週期中的數據
  • 在以上兩種報告中,進程和內存的報告都是實時的。

用法總結

vmstat 指定模式參數 採樣參數

  • 1 模式參數 每種模式都有對應的輸出
    • 磁盤模式 -d -D
    • 磁盤分區模式 -p
    • VM模式 -a -f -s
    • slab模式 -m
  • 2 採樣參數 無非就是第一個是採樣週期,第二個是採樣次數,不過第一個採樣是從上次重啓以來到現在的一個報告

選項

採樣參數

  • delay 秒爲單位的兩次更新之間的延時。如果沒有指定delay參數,就只產生一個從重啓以來的平均值報告
  • count 更新的次數。如果沒有count參數,且定義了delay參數的話,默認是無限次

VM模式

  • -a, --active 展示活躍的或者不活躍的內存
  • -f, --forks 展示從啓動以來的fork次數。這個包括fork vfork clone系統調用,並且等於總的被創建的任務數。每個進程是由一個或者多個任務表示的,取決於線程的使用情況。這個展示不會反覆。
  • -s, --stats 展示一系列的事件計數器以及內存統計信息

slab模式

  • -m, --slabs 展示slabinfo

磁盤模式

  • -d, --disk 報告磁盤的統計數據
  • -D, --disk-sum 報告關於磁盤活動的描述信息

磁盤分區模式

  • -p, --partition device 關於分區的詳細統計信息

輸出微調

  • -n, --one-header 僅僅展示標題行一次,而不是週期性地展示標題欄
  • -S, --unit character 切換輸出中的數據單位:k(1000) K(1024) m(1000000) M(1048576)
    • 注意,這個不會影響到swap(si/so)或者block(bi/bo)字段
  • -t, --timestamp 添加時間戳到每行
  • -w, --wide 寬輸出模式(適用於內存量更大的系統,其中默認輸出模式會遭受不必要的列損壞)。 輸出每行超過80個字符。
  • -V, --version
  • -h, --help

對於VM模式的字段描述

進程

標題 詳解
r runnable的進程(包含正在運行的或者等待運行時間的進程)
b 處於不可中斷的休眠的進程

內存

標題 詳解
swpd 已經使用的虛擬內存的數量
free 空閒的內存的數量
buff 作爲buffer使用的內存的數量
cache 作爲cache使用的內存的數量
inact 要帶-a選項纔有,不活躍內存的數量
active 要帶-a選項纔有,活躍內存的數量

Swap

標題 詳解
si 從磁盤交換的內存量(/s)
so 交換到磁盤的內存量(/s)

IO

標題 詳解
bi 從一個塊設備中接收到的塊的數量(blocks/s)
bo 發送到一個塊設備的塊的數量(blocks/s)

系統

標題 詳解
in 每秒的中斷數,包含時鐘的中斷
cs 每秒的上下文交換數量

CPU

  • 這些都是總的CPU時間的百分數佔比
標題 詳解
us 運行非內核代碼花的時間 (用戶層時間,包含nice時間)
sy 運行內核代碼花的時間 (系統層時間)
id 空轉花的時間
wa 等待IO花的時間
st 從虛擬機偷來的時間

對於磁盤模式的字段描述

標題 詳解
total 成功完成的總的讀取次數
merged 聚合的讀取(最終以一次IO完成)
sectors 成功讀取的扇區數
ms 花在讀上的ms數

標題 詳解
total 成功完成的總的寫入次數
merged 聚合的寫入(最終以一次IO完成)
sectors 成功寫入的扇區數
ms 花在寫上的ms數

IO

標題 詳解
cur 正在進行中的IO
s 花在IO上的秒數

對於磁盤分區模式的字段描述

標題 詳解
reads
read sectors
writes 對這個分區的寫次數
requested writes 向分區的總的寫請求數

對於SLAB模式的字段描述

標題 詳解
cache Cache的名稱
num 當前活躍對象的數量
total 可用對象的總數
size 每個對象的大小
pages 有至少一個活躍對象的頁的數量

注意事項

  • vmstat並不需要特殊權限
  • 這些報告都是用來幫助識別系統瓶頸的,Linux的vmstat並不會將自己當做一個運行進程來統計的
  • 所有的linux塊當前都是1024B,老的內核可能將塊當做512B|2048B|4096B來報告。
  • vmstat使用slabinfo1.1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章