侧边栏壁纸
博主头像
Terry

『LESSON 5』

  • 累计撰写 90 篇文章
  • 累计创建 21 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

vmstat基本命令

Terry
2023-02-13 / 1 评论 / 0 点赞 / 272 阅读 / 1,708 字 / 正在检测是否收录...

一、各参数的含义

1.1 procs

  • r:可运行队列的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用;
  • b:被 blocked 的进程数,正在等待 IO 请求;

1.2 memory

  • swpd:已使用的 SWAP 空间大小,KB 为单位;
  • free:可用的物理内存大小,KB 为单位;
  • buff:物理内存用来缓存读写操作的 buffer 大小,KB 为单位;
  • cache:物理内存用来缓存进程地址空间的 cache 大小,KB 为单位;

1.3 swap

  • si:数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;
  • so:数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位;

1.4 io

  • bi:磁盘块从文件系统或 SWAP 读取到 RAM(blocks in)的大小,block 为单位;
  • bo:磁盘块从 RAM 写到文件系统或 SWAP(blocks out)的大小,block 为单位;

1.5 system

  • in:被处理过的中断数
  • cs:系统上正在做上下文切换的数目

1.6 cpu

  • us:用户占用 CPU 的百分比;
  • sy:内核和中断占用 CPU 的百分比
  • id:CPU 完全空闲的百分比
  • wa:所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比;
  • st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown. 来自于虚拟机偷取的CPU所占的百分比

二、简单分析

2.1 procs r

运行的进程比较多,系统很繁忙,展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。

2.2 swap

如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
si,so这两个值越大,会看到由内核消耗的cpu时间会越多。注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

2.3 io

  • bi/bo:磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常
  • cpu us:us的值比较高时,说明用户进程消耗的cpu时间多,如果持续大于50%,服务高峰期可以接受, 如果长期大于50 ,可以考虑优化
  • cpu sy:现实内核进程所占的百分比,sys的值过高时,说明系统内核消耗的cpu资源多,这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
  • cpu wa:列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
  • cpu id:CPU 空闲时所占百分比 平常持续小于50,服务高峰期可以接受

2.4 常见问题处理

2.4.1 CPU问题现象

  • 如果r经常大于4,且id经常少于40,表示cpu的负荷很重。
  • 如果bi,bo长期不等于0,表示内存不足。
  • 如果disk经常不等于0,且在b中的队列大于3,表示io性能不好。
  • 如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU。
  • 如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢。
  • 如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us)系统则面临着CPU资源的短缺。

2.4.1.1 解决办法

当发生以上问题的时候请先调整应用程序对CPU的占用情况.使得应用程序能够更有效的使用CPU.同时可以考虑增加更多的CPU. 关于CPU的使用情况还可以结合mpstat, ps aux top prstat –a等等一些相应的命令来综合考虑关于具体的CPU的使用情况,和那些进程在占用大量的CPU时间.一般情况下,应用程序的问题会比较大一些.比如一些sql语句不合理等等都会造成这样的现象.

2.4.2 内存问题现象

内存的瓶颈是由scan rate (sr)来决定的.scan rate是通过每秒的始终算法来进行页扫描的.如果scan rate(sr)连续的大于每秒200页则表示可能存在内存缺陷.同样的如果page项中的pi和po这两栏表示每秒页面的调入的页数和每秒调出的页数.如果该值经常为非零值,也有可能存在内存的瓶颈,当然,如果个别的时候不为0的话,属于正常的页面调度这个是虚拟内存的主要原理.

2.4.2.1 解决办法

  • 调节applications & servers使得对内存和cache的使用更加有效.
  • 增加系统的内存.

关于内存的使用情况还可以结ps aux top prstat –a等等一些相应的命令来综合考虑关于具体的内存的使用情况,和那些进程在占用大量的内存.一般情况下,如果内存的占用率比较高,但是,CPU的占用很低的时候,可以考虑是有很多的应用程序占用了内存没有释放,但是,并没有占用CPU时间,可以考虑应用程序,对于未占用CPU时间和一些后台的程序,释放内存的占用。

链接

0

评论区