性能测试--cpu使用率过高怎么办

在博客 基于Docker搭建node-exporter+Prometheus+Grafana服务器监控平台 已经搭建好服务器监控平台。

在这里插入图片描述


在 Linux服务器监控,你必须要知道的“指标”和“命令”! 中归纳出服务器性能监控中需要重点关注的几大模块。而cpu作为重点关注的模块,需要注意下面这些和cpu相关的指标数据。

在这里插入图片描述


在实际的性能测试过程中,cpu的性能问题大部分都体现在us(user)、wa(iowait)、sy(system)、si(softirq)这几个数据中。并且通过Grafana展示数据中,我们可以看到,关于cpu的数据也只是展示了total、user、system、iowait这几个数据。下面就是通过常见的几个数据的分析过程。

二、链路分析

当我们在性能测试过程中,发现是操作系统层面的瓶颈时,首先需要看的就是CPU相关数据。通过top、mpstat命令查看us、wa、sy、si的数据是否正常,当然也可以用前面说到的Grafana平台,当然这个平台最后的本质也是使用的相关命令。
    一般来说us>70%就高了,sy>30%就高了,wa>5%就高了,可以通过这个标准来看是那部分cpu使用率过高。关于si的数据,是最好为0,虽然Grafana中没有展示si的数据,但是可以通过total-us-sy-wa来判断是不是其他部分cpu使用率过高。一般来说total-us-sy-wa的值接近于0。

2.1 us

us为CPU运行(未调整优先级的)用户进程时间占比,典型的用户进程有:Shells、数据库、Web服务器…

CPU使用率中us的使用率过高时的分析流程如下:

在这里插入图片描述

命令执行过程请参考:https://www.cnblogs.com/111testing/p/11403549.html

2.2 wa

wa(iowait)为CPU用于等待IO完成的CPU时间占比,一般IO操作特别频繁时,这个值就会高。

CPU使用率中wa的使用率过高时的分析流程如下:

在这里插入图片描述

2.3 sy

sy(system)为CPU运行内核进程时间占比,分配内存、IO操作、创建子进程都是内核操作.

CPU使用率中sy的使用率过高时的分析流程如下:

在这里插入图片描述

2.4 si

si(softirq)为CPU处理软件中断时间占比。软件中断的含义为:CPU 正在运行时,突然来了一个优先级高的,这时就会发一个中断信号给 CPU。作为一个干活的,CPU就把手头的工作现场保存一下,干这个优先级高的活。除非这个中断是致命的,不然 CPU 会在干完这个活之后再回去干之前的活,这就是一次软件中断。

CPU使用率中si的使用率过高时的分析流程如下:

在这里插入图片描述

三、写在最后

参考链接:cpu热点分析
最后,CPU的数据分析可以总结为下面这张图。

在这里插入图片描述

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwfpfz.html