性能测试--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相关数据。通过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的数据分析可以总结为下面这张图。
相关文章
- 高可用mongodb集群(分片+副本):性能测试
- 国内能不能去测试化
- 性能测试(第1集)第1讲:什么是软件的性能
- python性能测试脚本详解编程语言
- Linux下测试CPU性能的方法(linux测试cpu性能)
- 分析Linux内存CPU性能分析实践(linux内存cpu)
- Linux极致性能:最多同时使用几个CPU(linux几个cpu)
- Linux硬件测试:获取最佳性能工具(linux硬件测试工具)
- Redis在线性能测试中的应用(redis测试网址)
- Mysql锁功能测试:安全性与性能平衡之探索(mysql锁测试)
- Linux下的CPU压力测试(cpu压力测试linux)
- 性能测试测试Linux GPU性能:向往更快的速度(linuxgpu)
- Oracle购买CPU:分析CPU性能以保障企业运算(oracle购买cpu)
- 测试显示苹果的Swift语言性能不佳,任重而道远!
- 优化Linux系统下提升CPU性能的优化方案(linux系统cpu)
- “提升Linux系统性能:调整CPU频率”(cpu频率linux)
- CPU性能影响Oracle数据库性能(cpu影响oracle)
- 使用提升服务性能使用Redis限制CPU使用(redis限制cpu)
- Redis读写性能测试深入挖掘高效运行的秘诀(redis读写性能测试)
- 利用Redis自带的压测命令测试性能(redis自带的压测命令)
- iOS 10.2.1 有偷拍漏洞!情人节防偷拍指南 | 宅客爱测试
- 数据库工具sysbench安装教程和性能测试例子
- Java中的StringBuilder性能测试