Linux基础——vmstat 查看负载

来源:互联网 发布:免费股票数据接口api 编辑:程序博客网 时间:2024/06/05 08:32
w ;uptime 可以查看系统整体负载,通过数值可以判断系统有没有压力。但是具体是哪里出了问题,cpu? 内存?磁盘?并无法给出判断。通过vmstat可以指定具体是哪里有压力。
#vmstat 1 【每间隔1秒输出一次,且一直输出,直到ctrl c 停止】
#vmstat 1 5 【每间隔1秒输出一次,一共输出5次】
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1346596 21696 494320 0 0 7 31 21 15 0 1 99 0 0
0 0 0 1346588 21696 494344 0 0 0 0 25 12 0 1 99 0 0
0 0 0 1346588 21696 494344 0 0 0 4 17 18 0 1 99 0 0
0 0 0 1346588 21696 494344 0 0 0 0 17 12 0 0 100 0 0
0 0 0 1346588 21696 494344 0 0 0 0 14 10 0 0 100 0 0
r(分配几个进程) b(阻塞io阻塞)
buff(内存和磁盘写入磁盘) cache(cpu和内存读出磁盘)
si(0) so(0)
bi(in cpu) bo(out cpu)
us(进程占用cpu) wa(等待)
vmstat显示的信息分6部分。
1、procs [p'rɒk] 程序,进程
r run 1秒内运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU;
b block 被阻塞的,表示等待资源的进程数,任务数据等待写入磁盘,被I/O阻塞的任务有多少,网络、磁盘、I/O都有关,这列值如果长时间大于1,需要关注一下。

2、memory 内存相关信息
swpd 切换到交换分区中的内存数量,数值不变,说明每次没问题,如果数值很大,且不断的在变更,说明内存不够,或者内存溢出。切换到内存交换区的内存数量(以KB为单位)。如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能;
free 当前空闲的内存数量
buff 缓大小,即将写入磁盘的
cache 缓大小,从磁盘中读取的,
一般作文件系统的cached,频繁访问的文件都会被cached。如果cached值较大,就说明
cached文件数较多。如果此时IO中的bi比较小,就说明文件系统效率比较好。

3、swap 内存交换情况
si 交换分区写入内存的数据量 swap into memory
so 内存写入到交换分区的数据量 swap out of memory
两个数值一直是0,或者很小很小的值,没有说明变化,很稳定,说明内存够;如果长期大于0,而且不断的变化,说明内存不够。

4、io 磁盘使用情况
bi 从块设备读取数据的量 读磁盘 into memory
bo 从块设备写入数据的量 写磁盘 out of memory
这里设置的bi+bo参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈。

5、system 显示采集间隔内发生的中断次数
in 某一时间间隔中,观察到的每秒设备中断数
cs 每秒产生的上下文切换次数
CS,上下文切换属于cpu的一个范畴,简单讲就是cpu不能在同一时刻去处理多个任务,只能在一个时间点处理一个任务,但是每个任务分配的时间片是有限的,所以,任务任务1走完给它分配的时间片,就该任务2占用cpu了,这时候任务1到任务2就是上下文切换。
两列值不宜过高,平常不作为参考值。

6、CPU 显示cpu的使用状态
us user 显示用户所花费 cpu 时间的百分比,常年高于50或接近100,说明某进程占用很大的资源,需要进行优化。
sy system 显示系统花费 cpu 时间百分比
id idle['aɪd(ə)l] 限制的,停顿的cpu 处于空闲状态的 时间百分比
wa wait 表示I/O(网络或者磁盘)等待所占用cpu 时间百分比
st steal表示被偷走的cpu所占 时间百分比 一般为0,不用关注
us 就是我们给系统安装的一些应用、服务等耗费的cpu, sy就是系统内核自己的服务耗费的,id就是空闲的。steal这一数值,很少有不为0的情况,虚拟机里,比如现在的云主机,如果运营商把8核cpu的宿主机做了20台单核的虚拟机,那很有可能会出现这个值不为0的情况,如果出现了,就去找运营商理论。
loadaverage 和 us 要结合着一起看。loadaverage表示1分钟之内在使用或等待CPU的进程数量,vmstat中的us表示系统中的应用和服务消耗的CPU。


0 0
原创粉丝点击