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

转自:https://blog.csdn.net/qq_37688023/article/details/106985815

一、前言

在博客 基于Docker搭建node-exporter+Prometheus+Grafana服务器监控平台 已经搭建好服务器监控平台。
在这里插入图片描述
在 Linux服务器监控,你必须要知道的“指标”和“命令”! 中归纳出服务器性能监控中需要重点关注的几大模块。而cpu作为重点关注的模块,需要注意下面这些和cpu相关的指标数据。
在这里插入图片描述
在实际的性能测试过程中,cpu的性能问题大部分都体现在us(user)、wa(iowait)、sy(system)、si(softirq)这几个数据中。并且通过Grafana展示数据中,我们可以看到,关于cpu的数据也只是展示了total、user、system、iowait这几个数据。下面就是通过常见的几个数据的分析过程。

二、链路分析

    当我们在性能测试过程中,发现是操作系统层面的瓶颈时,首先需要看的就是CPU相关数据。通过topmpstat命令查看uswasysi的数据是否正常,当然也可以用前面说到的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.cnblogs.com/apple2016/p/14200356.html