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 位元組