转自: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相关数据。通过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的数据分析可以总结为下面这张图。