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 字节