vmstat命令是常见的Linux系统的监控小工具,它可以显示系统的CPU、内存以及IO的使用情况.
vmstat命令通常带有两个参数,第一个参数采用时间间隔,单位是s,第二个参数采用采样次数。比如,"vmstat 2 5"表示2s采样一次,并且连续采样5次。
$ vmstat
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 3156504 167816 505428 0 0 69 8 32 50 0 0 98 2 0
vmstat命令显示的单位是KB。在大型的服务器中,可以使用-S选项来按照MB或者GB来显示。
$ vmstat -S M
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 3082 164 493 0 0 59 7 30 47 0 0 98 2 0
下面简单介绍vmstat命令显示的各个参数的含义。
- r:表示在运行队列中正在执行和等待的进程数
- b:表示阻塞的进程
- swpd:表示交换到交换分区的内存大小
- free:空闲的物理内存的大小
- buff:用作磁盘缓存的大小
- cache:用于页面缓存的内存大小
- si:每秒从交换分区读回到内存的大小
- so:每秒写入交换分区的大小
- bi:每秒读取磁盘(块设备)的块数量
- bo:每秒写入磁盘(块设备)的快数量
- in:每秒中断数,包括时钟中断
- cs:每秒上下文切换数量
- us:用户进程执行时间百分比
- sy:内核系统进程执行时间百分比
- wa:I/O等待时间百分比
- id:空闲时间百分比
(以上内容,摘自《奔跑吧Linux内核 入门篇》)