查看资源使用率 vmstat
  2OOtxGRti36O 2023年11月02日 34 0

1用vmstat命令查看监控系统的状态

用w命令学会了查看负载情况,如果出现了负载值偏高的情况,如查询的数字大于CPU核数了,说明CPU不够用了。此时就需要思考CPU不够用的原因,进程在干什么,都有哪些任务在使用CPU,你可能想去查看系统的瓶颈在哪里。

可以查到CPU核数,内存,虚拟内存交换分区,io就是磁盘,系统的进程等等相关的东西。经常使用vmstat 1命令,每隔一秒输出一次状态,感觉差不多可以Ctrl C结束。

当然也可以vmstat 1 5,每隔一秒输出一次状态,输出5次结束。

我们只需要关心如下几列:

查看资源使用率 vmstat_块设备

1.1 proc显示进程的相关信息:

r,是run的简写,表示系统中有多少进程是属于run的状态。如果只有一个CPU,那某一个时间点只可能有一个进程在使用CPU,其他进程都在排队。但它们那是循环的,每个进程都有机会使用CPU,都可以使用一会儿。不管是在使用还是在排队,都是处于r的状态。如果该数值长期大于服务器CPU的个数,则说明CPU资源不够用了

b,是block的缩写,表示等待资源的进程数。b就是说进程被CPU以外的资源(硬盘或者网络)给阻断了,处于一个等待状态,卡死了,b被堵死了。比如说网速慢,进程想要给你发一个数据包,假如网速很快,只需要1秒就发完了。但是现在速度慢,可能就花了10秒钟,就是因为网速太慢,这个时候只能等网速了,这就是有多少进程在等待了。

1.2 memory显示内存的相关信息

swpd,表示切换到交换分区中的内存数量,单位为KB。以前讲分区时,有个swap交换分区,当内存不够时,系统可以把内存中的一部分数据临时放到swap空间里面去。如果这个数字不变,那还好;如果这个数字在持续不断的变化,那说明内存和交换分区在持续不断的交换数据,这就说明内存不够了。

1.3 swap显示内存的交换情况

si、so和swapd相关,如果swapd频繁变化,那他们也会相应发生变化。

si:表示有多少数据(块)是由swap交换区进入内存中的,单位为KB。i表示in,进入内存的。o表示out,so表示有多少是从内存中出来的

1.4 io显示磁盘的情况

bi,bo是和磁盘有关系的。bi表示从块设备读取数据的量(读磁盘),单位为KB。bo表示从块设备写入数据的量(写磁盘),单位为KB。这个数据量很大,说明磁盘在频繁的读写。io相比较磁盘来说,是很慢的。如果有那么多的数据读写,肯定会造成并列增加,因为有很多进程在等待磁盘,这个是必然的。

1.5  显示CPU的使用状态

us:表示用户级别的,比如说一个操作系统,肯定不可能只运行一个系统,还有跑一些服务。比如跑了一个网站,跑了一个MySQL,网站也好,MySQL也好,肯定会占一些资源,它就会体现us这一方面了,user占用的情况。us的数字是不会超过100的,因为一共就100%。us数字表示用户下的资源占用CPU的百分比,us长期大于50就说明系统资源不够了。

sy:显示系统本身花费CPU的时间百分比。

id:表示空闲的百分比us+sy+id=100

wa:wait等待,表示I/O等待所占用CPU的时间百分比,这一列很大,说明CPU不够用了。

通过vmstat命令可以判定出系统的瓶颈,如CPU不够,内存不够,还是磁盘io太大

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  eHipUjOuzYYH   2023年12月10日   30   0   0 mysqlsqlUser
  eHipUjOuzYYH   2023年12月07日   28   0   0 数据乐观锁redis
  jnZtF7Co41Wg   2023年12月09日   28   0   0 客户端服务端数据
  9JCEeX0Eg8g4   2023年12月11日   26   0   0 mysql配置文件