vmstat是一个可对Linux的虚拟内存、进程和CPU活动进行监控的轻量化工具,能对系统的整体情况进行统计,但不能深入分析某个进程。
命令使用
vmstat命令格式
vmstat |
vmstat命令常用选项
-a 显示活跃和非活跃内存。 |
说明
procs(进程)
:r
:当前运行队列中进程的数目,该值可作为判断CPU是否繁忙的一个指标。b
:等待I/O的进程数量。
memory(内存)
:交换(swpd)
:已使用的虚拟内存的大小。空闲(free)
:空闲的物理内存的大小。缓冲(buff)
:用作缓冲的内存大小;用作传输速度不同步或优先级不同的设备之间传输数据时的缓冲区域,减少进程之间的相互等待。缓存(cache)
:用作缓存的内存大小;介于CPU与内存之间,存储着CPU刚使用过或循环使用的一部分数据,当CPU再次使用这些数据时,则从缓存中直接调用,减少CPU的等待时间。
swap(交换空间)
:si
:每秒从虚拟内存写入物理内存的数据大小。so
:每秒从物理内存写入虚拟内存的数据大小。
io
:(默认块大小是1024字节)bi
:块设备每秒接收的块数。bo
:块设备每秒发送的块数。
system
:in
:设备中断,每秒CPU的中断次数,包含时间中断。cs
:每秒上下文切换数。
cpu
:(百分比)us
:用户进程执行时间。sy
:系统进程执行时间。id
:空闲时间(包括I/O等待时间)。wa
:I/O等待时间。
备注
Linux内存管理机制相关
- Linux会不时进行内存页面交换操作,以保持尽可能多的可用物理内存,即使此时物理内存占用很低,Linux还是会进行此操作,这样在需要时可以尽量减少进程等待内存交换所需的时间甚至是避免进程等待;
- Linux会将一些最近不经常使用的页面文件交换到虚拟内存,因此会出现这一正常现象:可用的物理内存虽然较多,但虚拟内存已使用的空间也较多;
- 即使某进程结束并释放较多的物理内存,但被交换到虚拟内存的页面文件也不会自动重新返回物理内存,除非有必要。
补充
si
和so
的值都长期大于0,则系统性能会收到影响。- 磁盘随机读写时,
bi
和bo
的值越大,则CPU的I/O等待时间的值也会越大。 in
和cs
的值越大,表明内核占用的CPU时间越多。wa
的值越大,表明I/O等待越严重,可能是由于磁盘的大量随机访问,也有可能是磁盘出现性能瓶颈。
整理自