vmstat
功能 :展现给定时间间隔服务器状态,包括cpu使用率,内存使用,虚拟内存交换情况,io读写情况
基础用法
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。
[root@xiaoagiao bak]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 1544676 2108 170872 0 0 41 4 44 133 0 0 99 0 0
[root@xiaoagiao bak]# vmstat 1 3 #一秒输出一次,一共三次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 1536356 2108 176904 0 0 13 2 35 87 0 0 100 0 0
0 0 0 1536356 2108 176904 0 0 0 2 35 73 0 0 100 0 0
0 0 0 1536356 2108 176904 0 0 0 0 41 77 0 1 99 0 0
[root@xiaoagiao bak]# vmstat 1 #每秒输出一次,不停输出,不退出
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 1536356 2108 176904 0 0 13 2 35 86 0 0 100 0 0
0 0 0 1536356 2108 176904 0 0 0 0 42 79 0 0 100 0 0
0 0 0 1536356 2108 176904 0 0 0 0 27 56 0 0 100 0 0
……
字段含义
类别 | 项目 | 含义 | 说明 |
---|---|---|---|
Procs | r | 等待执行的任务数 | 展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。 |
B | 等待IO的进程数量 | ||
memory | swpd | 正在使用虚拟的内存大小,单位k | 大于0时,表示物理内存不足,需要考虑升级内存 |
free | 空闲内存大小 | 物理内存 | |
buff | 已用的buff大小,对块设备的读写进行缓冲 | ||
cache | 已用的cache大小,文件系统的cache | ||
inact | 非活跃内存大小,即被标明可回收的内存,区别于free和active | (当使用-a选项时显示) | |
active | 活跃的内存大小 | (当使用-a选项时显示) | |
swap | si | 每秒从交换区写入内存的大小(单位:kb/s) | 大于0时,物理类存不够用了,查找消耗内存的进程干掉 |
so | 每秒从内存写到交换区的大小 | ||
IO | bi | 每秒读取的块数(读磁盘) | 现在的Linux版本块的大小为1024bytes |
bo | 每秒写入的块数(写磁盘) | ||
system | in | 每秒中断数,包括时钟中断 | 这两个值越大,会看到由内核消耗的cpu时间会越多 |
cs | 每秒上下文切换数 | ||
cpu | us | 用户进程执行消耗cpu时间(user time) | us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了 |
sy | 系统进程执行消耗cpu时间(user time) | sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因一般情况(us+sy不大于80%)。 | |
id | 空闲时间包括wa时间 | ||
wa | 等待io时间 | Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈 |
选项
-a | 显示活跃和非活跃内存 |
---|---|
-d | 显示各个磁盘相关统计信息 |
-D | 显示磁盘总体信息 |
-p | 显示指定磁盘分区统计信息 |
-s | 显示内存统计信息和多种系统活动数量 |
-t | 输出信息时一并输出时间 |
-S | 指定单位输出。KkmM(1000,1024,1000000,1048576) |
- 举例
[root@xiaoagiao bak]# vmstat -a #显示活跃和非活跃内存inact,active
procs --