Linux性能排查工具——vmstat
一、描述:
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析, 但是用户可以通过指定一个采样周期来实时观察系统活动。
该命令可以帮助您识别性能瓶颈并诊断系统中的问题。
DESCRIPTION
Reports information about processes, memory, paging, block IO, traps, and cpu activity.The first report produced gives averages since the last reboot. Additional reports give information on a sampling period of length delay.The process and memory reports are instantaneous in either case.
二、命令语法
基本语法:
vmstat [options][delay [count]]
options:各种自定义开关的输出.
delay:定义了更新输出之间的时间间隔.
count :在指定的延迟间隔之后的输出更新的数量。如果没有设置 count,则默认值为无限
三、基础输出解析
模块一:进程分析-Procs
r: 等待运行的进程数,值越大表示CPU非常繁忙。如果该值长期大于或等于逻辑CPU个数,这个表示CPU存在加大的瓶颈。
b: 阻塞进程数,主要是指被资源阻塞的进程队列数(比如IO资源、页面调度等),
模块二:内存分析-memory
swpd: 已使用的虚拟内存大小(-S 使用的是M)。当系统的物理内存达到极限时,内核开始使用交换空间。虚拟内存使用较大,说明物理内存比较吃紧了,需要采用合适的方式减少物理内存的使用。
free: 空闲的内存大小(-S 使用的是M)
buffe: 临时用作数据缓冲区的总内存大小。(-S 使用的是M)
cache: 总的缓存内存大小。
模块三:swap分析
si: 从磁盘交换到内存的速率。
so: 从内存交换到磁盘的速率。
模块四: io分析
bi: 每秒从块设备收到的块数,单位: 块/秒 也就是读块设备。
bo: 每秒发送到块设备的块数,单位: 块/秒 也就是写块设备。
模块五: system分析
in:每秒的中断数,包括时钟中断
cs:每秒的上下文切换次数。比如我们调用系统函数,就要进行上下文切换。所以这个数量是越小越好。
模块五: cpu 分析
us: 用户CPU时间百分比(非内核进程占用时间)。 us的值比较高时,说明用户进程消耗的CPU时间多。
sy: 系统使用的CPU时间百分比。sy的值高时,需要检查原因。
id: 空闲 CPU 的实际百分比。
wa: 等待IO所花费的 CPU 时间的百分比。该值越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
st: 被虚拟机使用的 CPU 时间的百分比。