linux资源管理命令之-----vmstat

1、做用及语法:
命令用来显示Linux系统虚拟内存状态,也能够报告关于进程、内存、I/O等系统总体运行状态。
vmstat [options] [delay [count]]
2、vmstat各字段说明
======================================================
[root@smiletest /]# vmstat
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 3592 123600 127964 1229856 0 0 0 25 2 7 0 0 100 0 0
======================================================
一、procs
r: 表示 运行和等待CPU时间片的进程数(就是说多少个进程真的分配到CPU),这个值若是长期大于系统CPU个数,说明CPU不足,须要增长CPU
b: 表示在等待资源的进程数,好比正在等待I/O或者内存交换等。
二、memory
swpd: 表示 交换内存使用总量 ,即虚拟内存已使用的大小(单位KB),若是大于0,表示你的机器物理内存不足了,若是不是程序内存泄露的缘由,那么你该升级内存了或者把耗内存的任务迁移到其余机器。
free: 表示当 前空闲的物理内存
buff: 表示baffers cached内存大小,也就是缓冲大小,通常对块设备的读写才须要缓冲
Cache: 表示page cached的内存大小,也就是缓存大小,通常做为文件系统进行缓冲,频繁访问的文件都会被缓存,若是cache值很是大说明缓存文件比较多,若是此时io中的bi比较小,说明文件系统效率比较好
三、swap
si: 数据进入swap中的数据速率(kb/s) ,若是这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so 数据离开swap的速率(kb/s)
注意: 通常状况下si、so的值都为0,若是si、so的值长期不为0,则说明系统内存不足,须要增长系统内存
四、io
bi: 从块设备读入数据到系统的速度,即读磁盘,单位kb/s
bo: 表示写到块设备数据的总量,即写磁盘,单位kb/s
注意:若是bi+bo的值过大,且wa值较大,则表示系统磁盘IO瓶颈
五、system
in: 表示某一时间间隔内观测到的每秒设备终端数
cs: 表示每秒产生的 上下文切换次数,
例如咱们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,咱们通常作性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程能够由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,咱们的代码就会进入内核空间,致使上下文切换,这个是很耗资源,也要尽可能避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,致使CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
注意:
这两个值越大,则由内核消耗的CPU就越多
六、CPU
us: 表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,若是长期大于50%,则须要考虑优化程序或者算法
sy: 表示系统内核进程消耗的CPU时间百分比,通常来讲us+sy应该小于80%,若是大于80%,说明可能存在CPU瓶颈
id: 表示CPU处在空间状态的时间百分比
wa: 表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,若是超过20%,说明I/O等待严重,引发I/O等待的缘由多是磁盘大量随机读写形成的,也多是磁盘或者监控器的贷款瓶颈(主要是块操做)形成的
综上所述,若是评估CPU,须要重点关注procs项的r列值和CPU想的us、sy、wa列的值
3、使用实践
通常vmstat工具的使用是经过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:
[root@smiletest /]# vmstat 2 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 3592 124444 128008 1229888 0 0 0 25 2 7 0 0 100 0 0
2表示每一个两秒采集一次服务器状态,1表示只采集一次。
相关文章
相关标签/搜索