Linux vmstat 命令 - 统计虚拟内存情况
介绍
vmstat(英文全拼:virtual memory statistics)命令用于统计 Linux 系统虚拟内存使用情况,可实时动态监视操作系统的虚拟内存、进程、CPU 活动。
语法:
vmstat [options] [delay [count]]
选项:
delay
:两次输出之间的延迟时间,如果未指定,则只打印一次报告(包含自启动 以来的平均值)count
:统计次数(定义 delay 参数时生效),如果未指定,默认为无限次。-a
,--active
:显示处于 active 和 inactive 状态的内存量。-f
,--forks
:显示自启动以来的 forks 数,包括fork()
、vfork()
和clone()
系统调用,相当于创建的任务总数。每个进程由一个或多个任务表示,具体取决于线程使用情况。该选项不支持重复显示。-m
,--slabs
:显示 slab 信息。-n
,--one-header
:在周期性输出时,只显示一次头部信息。-s
,--stats
:显示各种事件计数器和内存统计信息的表格。该选项不支持重复显示。-d
,--disk
:报告磁盘统计信息。-D
,--disk-sum
:报告有关磁盘活动的一些摘要统计信息。-p
,--partition device
:显示磁盘分区详细统计。-S
,--unit character
:在 1000 (k)、1024 (K)、1000000 (m) 或 1048576 (M) 字节之间切换。注意:这不会改变 block (bi/bo) 字段单位,这些字段始终以块为单位进行测量。-t
,--timestamp
:在每一行后面附上时间戳。-w
,--wide
:以宽模式输出(适用于具有更高内存量的系统),输出宽度超过每行 80 个字符。-V
,--version
:显示版本信息并退出。-h
,--help
:显示帮助信息并退出。
示例
显示系统虚拟内存统 计信息(连续输出 5 次,每次间隔 5 秒)
$ vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 407004 111360 308324 0 0 5039 30 65 243 12 6 78 4 0
1 0 0 407508 111372 308328 0 0 0 42 980 762 26 1 73 0 0
2 0 0 407256 111392 308332 0 0 0 47 974 749 26 1 73 0 0
3 0 0 919572 111400 308340 0 0 0 28 818 680 13 2 85 0 0
0 0 0 919288 111676 308428 0 0 0 614 1200 1325 1 3 97 0 0
字段含义:
- Procs(进程)
- r :运行队列中进程数量
- b :等待 IO 的进程数量
- Memory(内存)
- swpd :使用虚拟内存大小
- free :可用内存大小
- buff :用作缓冲区的内存大小
- cache :用作缓存的内存大小
- Swap
- si :每秒从交换区写到内存的大小
- so :每秒写入交换区的内存大小
- IO(现在的 Linux 版本块的大小为 1024 bytes)
- bi :每秒读取的块数
- bo :每秒写入的块数
- System
- in :每秒中断数,包括时钟中断
- cs :每秒上下文切换数
- CPU(以百分比表示)
- us :用户进程执行时间(user time)
- sy :系统进程执行时间(system time)
- id :空闲时间(包括 IO 等待时间)(idle time)
- wa :等待 IO 时间(wait time)