1.安裝 sysstat(系统监控工具)软件包 【vmstat,sar和iostat命令都包含在其中】
yum -y install sysstat
2.用法
用法:
vmstat [选项参数]
或
vmstat [选项参数] [刷新延时] [刷新次数]
选项参数:
1) -d: 显示磁盘相关统计信息。
2) -a: 显示活跃和非活跃内存
3) -f: 显示从系统启动至今的fork数量。
4) -p: 显示指定磁盘分区统计信息
5) -s: 显示内存相关统计信息及多种系统活动数量。
6) -m: 显示slabinfo
7) -S 单位 令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。
8) -t 顯示時間
3.字段含义说明
类别 | 项目 | 含 义 |
---|---|---|
Procs(进程) | r | 运行队列中进程数量 |
Procs(进程) | b | 等待IO的进程数量 |
Memory(内存) | swpd | 正在使用虚拟的内存大小,单位k |
Memory(内存) | free | 空闲内存大小 |
Memory(内存) | buff | 已用的buff大小,对块设备的读写进行缓冲 |
Memory(内存) | cache | 已用的cache大小,文件系统的cache |
Memory(内存) | inact | 非活跃内存大小,即被标明可回收的内存,区别于free和active |
Memory(内存) | active | 活跃的内存大小 |
swap交换页面 | si | 每秒从交换区写入内存的大小(单位:kb/s) |
swap交换页面 | so | 每秒从内存写到交换区的大小 |
io块设备 | bi | 每秒读取的块数(读磁盘 |
io块设备 | bo | 每秒写入的块数(写磁盘) |
system系统 | in | 每秒中断数,包括时钟中断 |
system系统 | cs | 每秒上下文切换数 |
cpu中央处理器 | us | 用户进程执行消耗cpu时间(user time) % |
cpu中央处理器 | sy | 系统进程消耗cpu时间(system time)% |
cpu中央处理器 | id | 空闲时间(包括IO等待时间)% |
cpu中央处理器 | wa | 等待IO时间% |
cpu中央处理器 | st | 来自于虚拟机偷取的CPU所占的百分比 |
进程信息字段:
-r:等待运行的进程数,数量越大,系统越繁忙。
-b:不可被唤醒的进程数量,数量越大,系统越繁忙
CPU信息字段:
-us:非内核进程消耗 CPU 运算时间的百分比。
-sy:内核进程消耗 CPU 运算时间的百分比。
-id:空闲 CPU 的百分比。
-wa:等待 I/O 所消耗的 CPU 百分比。
-st:被虚拟机所盗用的 CPU 百分比。
cpu us: 持续大于50%,服务高峰期可以接受, 如果长期大于50 ,可以考虑优化
cpu sy: 现实内核进程所占的百分比,这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
cpu wa: 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的, 也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
cpu id: CPU 空闲时所占百分比 平常持续小于50,服务高峰期可以接受。
系统信息字段:
-in:每秒被中断的进程次数。
-cs:每秒进行的事件切换次数。
这两个数越大,代表系统与接口设备的通信越繁忙。
磁盘读/写信息字段:
-bi:从块设备中读入的数据的总量,单位是块。
-bo:写到块设备的数据的总量,单位是块。
bi/bo: 磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常
这两个数越大,代表系统的 I/O 越繁忙。
交换分区信息字段:
-si:从磁盘中交换到内存中数据的数量,单位为 KB。
-so:从内存中交换到磁盘中数据的数量,单位为 KB。
这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差
swpd 虚拟内存已使用的大小,如果大于0,表示物理内存不足,
但如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能
4.vmstat -S M (這裡 -S M 表示單位改成 M)
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
5 0 1541 531 0 20447 0 0 44 133 0 0 17 2 81 1 0
r 表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
5.显示活跃和非活跃内存 vmstat -a -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
5 5 1541 602 9705 13542 0 0 44 133 0 0 17 2 81 1 0
6.每2秒显示 1次(共3次) vmstat 2 3
-S M 【无3时,则实时监控】
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
5 0 1541 617 0 20009 0 0 44 133 0 0 17 2 81 1 0
2 0 1541 616 0 20010 0 0 120 8440 644 6097 21 1 77 1 0
2 0 1541 622 0 20010 0 0 120 2492 562 4732 14 1 85 0 0