vmstat是一个查看虚拟内存使用情况的工具,它能够看到服务器使用率,内存使用,虚拟内存交换状况,IO读写.相比top,能够看到整个机器的CPU,memory,IO的使用状况,而不是单单看到各个进程各值的使用率.web
默认状况下,vmstat命令并无安装,须要安装sysstat包,该包里含有vmstat程序.缓存
通常常用的该命令后加2个数字参数,第一个参数是采样的时间间隔(秒),第二个参数是采样的次数.服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
|
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
13
0
0
542604
323512
12356052
0
0
0
2
0
0
17
18
65
0
0
42
0
0
552500
323512
12356112
0
0
0
0
18669
49903
42
45
14
0
0
72
0
0
563416
323512
12356132
0
0
0
0
18394
49895
41
43
16
0
0
73
0
0
570924
323512
12356164
0
0
0
0
19666
51678
37
41
22
0
0
13
0
0
581208
323512
12356204
0
0
0
280
18990
49541
43
43
15
0
0
18
0
0
587148
323512
12356228
0
0
0
32
19360
49203
37
39
24
0
0
27
0
0
520016
323512
12356292
0
0
0
0
20423
52865
39
40
21
0
0
18
0
0
527512
323512
12356336
0
0
0
0
19613
53052
42
43
16
0
0
23
0
0
538608
323512
12356376
0
0
0
0
18860
50645
41
42
18
0
0
80
0
0
548608
323512
12356444
0
0
0
0
19781
50917
41
42
17
0
0
|
根据以上实例,下面是字段说明:函数
Procs(进程)工具
r:表示运行队列的进程数量,换句话说就是多少个进程真正分配到cpu.服务器配置cpu为8核,这里因为服务器运行了大量的程序在跑,当这个值超过了cpu数目,且id较小,就可能会出现cpu瓶颈.运行队列过大,表示cpu很繁忙,通常会形成cpu使用率太高.spa
b:等待io的进程数..net
Memory线程
swpd:虚拟内存使用状况,单位KBcode
free:空闲的内存orm
buff:用做缓冲的内存大小,内存中的一部分,某程序代码缓存,不可移到swap里去.
cache:用做缓存的内存大小,数据缓存,容许交给swap
Swap
si:从磁盘交换到内存的交换页数量,每秒从磁盘读入虚拟内存的大小,若是这个值大于0,表示物理内存不够用或者内存泄露.
so:从内存交换到磁盘的交换页数量,每秒虚拟内存写入磁盘的大小,若是这个值大于0,表示物理内存不够用或者内存泄露.
bi:Blocks received from a block device (blocks/s).每秒从块设备接收到的块数,即读块设备。
bo:Blocks sent to a block device (blocks/s).每秒发送到块设备的块数,即写块设备。
System
in:每秒中断数,包括时钟中断.
cs:每秒上下文切换数.这个值越小越好.好比每次调用系统函数,线程的切换,代码就会进入内核空间,致使上下文切换,次数过多表示cpu大部分浪费在上下文切换,致使cpu没有充分利用.
CPU(以百分比表示)
us:用户进程执行的时间,用户cpu使用率,操做运算等.
sy:系统进程执行的时间,系统cpu使用率,读取硬盘,操做硬件等.
id:空闲时间(包括IO等待时间)
wa:等待IO时间