【转帖】Linux性能优化(十三)——CPU性能测试
一、CPU上下文切换测试场景
使用sysbench模拟多线程调度:
sysbench --threads=10 --time=300 threads run
使用vmstat查看CPU上下文切换:

cs列上下文切换次数超过150万次。
r列就绪队列长度最大达到8,超过系统CPU的个数4,存在大量的CPU竞争。
sy列超过70%,说明CPU主要是被内核占用。
in列中断次数上升到40000以上,说明中断处理也是个潜在的问题。
系统就绪队列过长,即正在运行和等待CPU的进程数过多,导致大量的上下文切换,而上下文切换又导致了系统 CPU 的占用率升高。
使用pidstat -wt 3查看具体线程:

sysbench线程的cswch超过40000,nvcswch超过100000。
观察CPU的中断使用情况:
watch -d cat /proc/interrupts

重调度中断(RES)超过400万次,用于唤醒空闲状态的CPU来调度新的任务运行。多处理器系统(SMP)中,处理器间中断(Inter-Processor Interrupts,IPI)用来分散任务到不同CPU的机制。
二、CPU平均负载测试场景
1、CPU密集型进程
第一个终端运行stress命令,模拟一个CPU使用率100%的场景。
stress --cpu 1 --timeout 600
在第二个终端运行uptime查看平均负载的变化情况。
watch -d uptime

在第三个终端运行mpstat查看CPU使用率的变化情况。
mpstat -P ALL 5

监控所有CPU,每隔5秒输出一次。
第二个终端uptime监控的1分钟的平均负载会缓慢增加到1.21。
第三个终端中CPU3的使用率为96%,但相应iowait只有0,平均负载的升高是由于CPU使用率为100%。
第四个终端运行pidstat查看进程的CPU使用率,发现stress进程的CPU使用率为100%。
pidstat -u 5 1

2、IO密集型进程
第一个终端运行stress命令,模拟一个IO密集型进程。
stress -i 1 --hdd 1 --timeout 600
第二个终端运行uptime查看平均负载的变化情况。
watch -d uptime

第三个终端运行mpstat查看CPU使用率的变化情况。
mpstat -P ALL 5

第四个终端运行pidstat查看进程的CPU使用率,发现stress进程的CPU使用率相对比较高。
pidstat -u 5 1

3、等待CPU进程
当系统中运行进程超出CPU运行能力时,就会出现等待CPU的进程。
第一个终端运行stress命令,模拟10个进程的场景。
stress -c 10 --timeout 600
由于系统只有4个逻辑CPU,比10个进程要少得多,因而,系统的CPU处于严重过载状态,平均负载高达9.96。

mpstat查看CPU使用率都接近100%。

10个进程争抢4个逻辑CPU,每个进程等待CPU时间(%wait 列)高达60%,严重超出CPU计算能力,最终导致CPU过载。

三、CPU使用率测试场景
1、开启多线程压力测试
sysbench --threads=8 --time=600 cpu run
使用sysbench开启8线程压力测试,持续时间600秒
2、实时分析
sudo perf top -g -p 30388
实时分析sysbench进程30388的性能

选择sysbench,按ENTER键。

选择CPU使用率最大的cpu_execute_eventh函数,按ENTER键进入查看。

选择Annotate cpu_execute_event按ENTER键进入,查看函数内部调用所占CPU。

从cpu_excute_event函数调用看,取模运算占用CPU使用率高达70%以上。

3、离线分析
perf record -g -p 28068
采样sysbench进程性能数据
perf report
解析性能数据


QQ群名片
【转帖】Linux性能优化(十三)——CPU性能测试的更多相关文章
- Linux性能优化之CPU优化(一)
前言 何为性能优化?个人认为,性能优化是为了提高应用程序或系统能力为目的.那么如何才能实现对应用程序的性能调优呢?这里很设计到很多的内容,包括Linux内核.CPU架构以及Linux内核对资源的分配以 ...
- Linux性能优化实战CPU篇之总结(四)
一.分析CPU瓶颈 1,性能指标 a>CPU使用率 CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任务的不同可以分为:用户CPU.系统CPU.等待I/O CPU.软中断和硬 ...
- Linux性能优化实战CPU篇之软中断(三)
一.软中断 1,中断的定义 a>定义 举例:你点了一份外卖,在无法获知外卖进度的情况下,配送员送外卖是不等人的,到了发现没人取会直接走,所以你只能苦苦等着,时不时去门口看送到没有,无法干别的事情 ...
- Linux性能优化:CPU性能分析工具--vmstat
Blog:博客园 个人 目录 参数说明 输出信息说明 procs memory swap io system cpu 示例 vmstat是Virtual Meomory Statistics(虚拟内存 ...
- 3 Linux性能优化之 CPU上下文
- linux性能优化cpu 磁盘IO MEM
系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...
- Linux性能优化 第二章 性能工具:系统CPU
2.1 CPU性能统计信息 2.1.1运行队列统计 在Linux中,一个进程要么是可运行的,要么是阻塞的(正在等待一个事件的完成).阻塞进程可能在等待从I/O设备来的数据,或者是系统调用的结果如果一个 ...
- Linux 性能优化之 IO 子系统 系列 图
http://blog.sina.com.cn/s/articlelist_1029388674_11_1.html Linux 性能优化之 IO 子系统(一) 本文介绍了对 Linux IO 子系统 ...
- 【好书摘要】性能优化中CPU、内存、磁盘IO、网络性能的依赖
系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...
- 性能优化中CPU、内存、磁盘IO、网络性能的依赖(转)
关于系统性能优化,推荐一篇不错的博客! 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试 ...
随机推荐
- 使用 Python 将数据写入 Excel 工作表
在数据处理和报告生成等工作中,Excel 表格是一种常见且广泛使用的工具.然而,手动将大量数据输入到 Excel 表格中既费时又容易出错.为了提高效率并减少错误,使用 Python 编程语言来自动化数 ...
- 手把手带你入门加密算法的Python实现
摘要:一个简单的md5加密算法,带你解开所谓"加密"过程的神秘面纱. 一个简单的md5加密算法,非常适合新手练习 链接:> aHR0cDovL3d3dy5jaHVjaHVqa ...
- DTT年度收官圆桌π,华为云8位技术专家的年末盘点
摘要:收下这份DTT年度收官圆桌π总结,在新的一年心想事成,技术上更上一层楼. 本文分享自华为云社区<DTT年度收官圆桌π,华为云8位技术专家的年末盘点>,作者:华为云社区精选 . 在20 ...
- 知识+AI融合创新探索,华为云论文被AI顶级学术期刊IEEE TPAMI接受
摘要:通过利用物体类别之间存在的层级关系约束,自动学习从数据中抽取识别不同类别的规则,一方面对模型的预测过程进行解释,另一方面也提供了一条引入人工先验知识的可行途径. 前言 受益于深度学习技术的突破, ...
- 详解openGauss多线程架构启动过程
摘要:本文介绍openGauss数据库的启动过程,包括主线程,辅助线程及业务处理线程的启动过程. 本文分享自华为云社区<openGauss内核分析(一):openGauss 多线程架构启动过程详 ...
- 华为云GaussDB(for Influx)揭秘第五期:最佳实践之子查询
摘要: GaussDB(for influx)提供灵活的子查询能力,满足海量数据场景下的高性能查询需求. 本文分享自华为云社区<华为云GaussDB(for Influx)揭秘第五期:最佳实践之 ...
- 基于MRS-Hudi构建数据湖的典型应用场景介绍
摘要:华为云FunsionInsight MRS已集成Apache Hudi 0.8版本,基于MRS-Hudi构建数据湖解决方案. 本文分享自华为云社区<基于MRS-Hudi构建数据湖的典型应用 ...
- jQuery模糊匹配checkbox全选 value实现checkbox部分或全部全选
本文章总结jQuery实现checkbox三种情况的全选功能 第一种:等值全选,也称name的等值全选,通过checkbox的名称name实现. 第二种:模糊全选,也称id模糊全选,通过checkbo ...
- 火山引擎数智平台ByteHouse入围稀土掘金《Top10 年度创新产品》
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,国内开发者技术社区稀土掘金发布「2022 稀土掘金引力榜」,旨在盘点 2022 年在数字化转型领域内最具影响 ...
- 柔性上肢康复机器人研究中的VR技术
上肢康复机器人用于对脑卒中患者进行上肢康复治疗,能够维持和扩大患者关节活动度.增强肌肉力和协调性,以防止肌肉萎缩.关节痉挛等各类症状的出现,最终重建肢体功能,以便回归正常生活.现有的上肢康复机器人训练 ...