stat 命令家族(1)- 詳解 vmstat
- 2020 年 8 月 4 日
- 筆記
- stat 命令家族, 性能必備Linux命令, 測試進階知識系列 - 性能測試必備的 Linux命令
性能測試必備的 Linux 命令系列,可以看下面鏈接的文章哦
vmstat 介紹
- Virtual Meomory Statistics,報告虛擬記憶體統計資訊
- 會統計進程資訊、記憶體、交換區、IO、磁碟、CPU 等數據
vmstat 語法格式
vmstat [options] [delay [count]]
- options:命令行參數,可選
- delay:間隔多久統計一次數據,可選
- count:統計一次,可選
- 注意:若只傳了 delay,則統計次數是無限次,結束統計後會列印本次所有數據的平均值
小栗子
vmstat 1
每隔 1s 統計列印一次數據,統計無限次
vmstat 2 5
每隔 2s 統計列印一次數據,共統計 5 次
vmstat 命令行參數
簡寫 | 完整寫法 | 參數後是否要指定一個值 | 作用 |
-a | –active | F | 顯示活動和非活動記憶體 |
-n | –one-header | F | 僅顯示一次標題,而不是定期顯示 |
-s | –stats | F | 獲取記憶體、CPU、交換區、中斷次數、上下文切換次數等資訊 |
-d | –disk | F | 獲取磁碟的詳細資訊(讀寫資訊) |
-D | –disk-sum | F | 獲取磁碟的一些摘要資訊 |
-P | –partition device | T(device) | 有關分區的詳細統計資訊 |
-S | –unit character | T(character) |
|
-t | –timestamp | F | 加一列顯示當前時間 |
-V | –version | F | 版本 |
-h | –help | F | 幫助文檔 |
vmstat 統計數據的欄位說明
共有 6 個模組
procs:進程狀態
欄位 | 欄位說明 |
r | 處於 Runnable 狀態的進程數量 |
b | 處於不可中斷睡嗎狀態的進程數量 |
memory:記憶體資訊
欄位 | 欄位說明 |
swpd | 已用虛擬記憶體 |
free | 空閑記憶體 |
buff | 用於緩衝區的記憶體 |
cache | 用於快取的記憶體 |
inact | 不活動的記憶體量(-a) |
active | 活動的記憶體量(-a) |
swap:交換區
欄位 | 欄位說明 |
si | 每秒從交換區寫到記憶體的大小 |
so | 每秒寫入交換區的記憶體大小 |
io:io 讀寫資訊
現在的Linux版本塊的大小為1024bytes
欄位 | 欄位說明 |
bi | 每秒讀取的塊數 |
bo | 每秒寫入的塊數 |
system:系統資訊
欄位 | 欄位說明 |
in | 每秒中斷數,包括時鐘中斷 |
cs | 每秒上下文切換次數 |
CPU:CPU 詳細資訊
這些是總 CPU 時間的百分比
欄位 | 欄位說明 |
us | 用戶態進程的 CPU 使用率 |
sy | 內核態進程的 CPU 使用率 |
id | 空閑 CPU 百分比 |
wa |
等待 IO 的 CPU 使用率 |
st | 從虛擬機偷取的 CPU 百分比 |
vmstat 數據來源
主要來自這三個文件
- /proc/meminfo
- /proc/stat
- /proc/*/stat
vmstat
這些資訊主要來自 /proc/stat
vmstat -s
這些資訊的分別來自於 /proc/meminfo 、 /proc/stat 和 /proc/vmstat
vmstat -d
這些資訊主要來自於 /proc/diskstats
vmstat 的其他用法
列印活動記憶體和不活動記憶體量
vmstat -a 2 2
以 MB 單位輸出結果
vmstat -S M 1 2
以 MB 單位輸出各事件計數器和記憶體的統計資訊
vmstat -s -S M
vmstat 的注意事項
- vmstat 不需要特殊許可權
- vmstat 報告旨在幫助確定系統瓶頸,所以它不會將自己視為正在運行的進程
- 當前所有的 Linux 塊都是 1024 位元組, 舊內核可能報告的塊為 512 位元組,2048 位元組或 4096 位元組