virtual memory statistics
实时输出系统中各种资源的使用情况
vmstat [选项] [delay[count]]
缺省情况下(无选项),vmstat的输出内容相当丰富,比如:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 2469012 489604 1451368 0 0 36 131 996 1043 23 4 72 1 0
vmstat功能丰富,实际上vmstat命令主要用于查看系统内存的使用情况。我可以使用iostat获得磁盘使用情况的更多信息,使用mpstat获得CPU使用情况的更多信息。
procs | 进程信息 |
---|---|
r | (runnable)等待运行额进程数目,即就绪状态 |
b | (blocked)处于不可中断睡眠状态的进程数目,即阻塞状态 |
memory | 内存信息(单位KB) |
---|---|
swpd | 交换分区(虚拟内存)的使用数量 |
free | 空闲内存的数量 |
buff | buffer cache的内存数量 |
cache | page cache的内存数量 |
buffer cache:从磁盘读入的数据可能被保存在buffer cache中,以便下一次快速访问。
page cache:待写入的数据首先被放到page cache中,然后由磁盘中断程序写入磁盘
swap | 交换分区的使用信息(单位KB/s) |
---|---|
si | (swap input)数据由磁盘交换至内存的速率 |
so | (swap output)数据由内存交换至磁盘的速率 |
io | 块的使用信息(单位block/s) |
---|---|
bi | (block input)从块设备读入的速率 |
bo | (block output)向块设备写入的速率 |
sys | 系统信息 |
---|---|
in | 每秒发生的中断次数 |
cs | 每秒发生的上下文切换(进程切换)次数 |
cpu | CPU使用信息 |
---|---|
us | 系统所有进程在用户空间的时间占CPU总时间的比例 |
sy | 系统所有进程在内核空间的时间占CPU总是就的比例 |
id | 表示CPU处于空闲状态的时间占CPU总运行时间的比例 |
wa | 表示CPU等待I/O事件的的时间占CPU总运行时间的比例 |
- delay:采样间隔(单位s)
- count:采样次数|共输出count次统计信息
delay和count是参数,而非选项,实际使用的时候用数字代替。比如:
vmstat 5 3
每个5秒输出一次结果,共输出3次
选项 | 描述 |
---|---|
-f | 显示系统自启动以来执行的fork次数 |
-s | 显示内存相关的统计信息以及多种系统活动的数量 |
-d | 显示磁盘相关的统计信息 |
-p | 需要参数,显示指定磁盘分区的统计信息 |
-S | 使用指定的单位来显示,如k、K,m,M |
- k:1000
- K:1024
- m:1 000 000
- M:1 048 576