vmstat命令
访问量:2367

一、简介

vmstat命令(Virtual Meomory Statistics),是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析cpu上下文切换和中断的次数。

语法格式如下:

vmstat [options] [delay [count]]

options代表可用参数

delay 代表每次采集数据的时间间隔 ,单位秒

count 代表采集几组数组

二、常用参数

-a:显示活跃和非活跃内存

-f:显示从系统启动至今的fork数量 。

-m:显示slabinfo

-n:只在开始时显示一次各字段名称。

-s:显示内存相关统计信息及多种系统活动数量。

delay:刷新时间间隔。如果不指定,只显示一条结果。

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

-d:显示磁盘相关统计信息。

-p:显示指定磁盘分区统计信息

-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

-V:显示vmstat版本信息。

三、案例

1、采集2组数组,时间间隔为5s

字段描述:

Procs(进程):

r: 运行队列中进程数量

b: 等待IO的进程数量

Memory(内存):

swpd: 使用虚拟内存大小

free: 可用内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

Swap:

si: 每秒从交换区写到内存的大小

so: 每秒写入交换区的内存大小

IO:

bi: 每秒读取的块数

bo: 每秒写入的块数

系统:

in: 每秒中断数,包括时钟中断。

cs: 每秒上下文切换数。

CPU(以百分比表示):

us: 用户进程执行时间(user time)

sy: 系统进程执行时间(system time)

id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。

wa: 等待IO时间

四、补充

1、物理内存和虚拟内存

物理内存就是系统硬件提供的内存大小,是真正的内存。

我们知道,从物理内存中读取数据要比从硬盘上面读取数据要快,针对程序需要使用的数据,我们希望都是从物理内存中读取。但物理内存,毕竟是有限的。为了满足物理内存的不足,于是,就有了虚拟内存。

虚拟内存,作为物理内存的扩展,是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。

linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。

2、linux内存运行机制

a、linux系统会不间断地把物理内存中,不需要使用的数据,存储到虚拟内存,以保持有更多的空闲物理内容

b、linux系统采用缓存淘汰算法,将一些不经常使用的数据页,交换到虚拟内存。

c、虚拟内存中数据页,在使用的时候,会被加载到物理内存。