sysbench测试CPU

news2024/12/24 8:26:39

版本:sysbench1.1


简介

    sysbench 对 CPU 测试的原理是通过创建多个线程,并让它们执行计算密集型任务来测试 CPU 性能。它会记录每个线程执行任务所需的时间,并计算出整个测试过程的平均值、最小值和最大值,甚至输出直方图展示延迟时间,方便评估CPU的性能。

        

文章目录如下

1. 参数说明

1.1. 命令语法 

1.2. 常用参数

2. 常见用法

2.1. 基础用法&报告解释

2.2. 常见测试方法

2.3. 直方图报告统计

2.4. 控制CPU测试


        

1. 参数说明

1.1. 命令语法 

sysbench [参数选项] cpu run

        

1.2. 常用参数

--cpu-max-prime=N    # 质数的最大值[默认10000]
--threads=N          # 测试线程数[默认1]
--time=N             # 测试时间(单位:s)[默认10]
--report-interval=N  # 定期报告统计信息间隔时间(单位:s), 0表示禁用[默认0]
--verbosity=N        # 详细日志级别(0~5), 0表示只输出重要信息, 5表示输出debug。[默认3]
--histogram=[on|off] # 输出延迟直方图[默认off]

        

2. 常见用法

2.1. 基础用法&报告解释

测试cpu性能可以直接执行

sysbench cpu run
  • 默认线程数:1
  • 默认质数计算最大值:10000
  • 默认测试时间:10秒

整个报告包含四部分,解释如下:

CPU speed:
    events per second:  1185.43                    # 每个线程吞吐量/s

Throughput:
    events/s (eps):               1185.4333        # 每个线程吞吐量/s
    time elapsed:                 10.0006s         # 每个线程运行时间
    total number of events:       11855            # 每个线程总事务数

Latency (ms):
         min:                     0.75             # 最小执行时间
         avg:                     0.84             # 平均执行时间
         max:                     33.74            # 最大执行时间
         95th percentile:         1.06             # 95%执行时间
         sum:                     9984.98          # 所有线程总处理时间

Threads fairness:
    events (avg/stddev):          11855.0000/0.00  # 所有线程总事务数/标准偏差
    execution time (avg/stddev):  9.9850/0.00      # 每个线程处理的总时间/标准偏差
  • Threads fairness 部分的偏差值为0,这是因为测试线程数为1,所以没有偏差

        

2.2. 常见测试方法

设置最大质数10w,线程数4,每秒输出1次统计信息,共测试5秒

sysbench --cpu-max-prime=100000 --threads=4 --time=5 --report-interval=1 cpu run

        

测试CPU负载5倍(线程数设置为CPU*5)

  • CPU核心数可以通过lscpu查看,我的CPU为6,所以设置线程数30
sysbench --cpu-max-prime=100000 --threads=30 --time=5 --report-interval=1 cpu run

        

2.3. 直方图报告统计

输出直方图开启 --histogram 参数即可,可以与其他参数一起使用。这里举个例子:

sysbench --histogram=on cpu run

直方图分为3部分:

  • value:响应时间(ms),从低到高排序。
  • distribution:将响应时间的事务数按比例来均匀分布的效果图。
  • count:每个响应时间所执行的次数。

    整个直方图是以响应时间和每类响应时间的次数来统计,按比例使用 * 来画出直方图。通过直方图可以清晰得知每个阶段的响应时间次数,如上图大部分响应时间在 0.768 ~ 0.888ms,其他段响应时间相对较少。

        

2.4. 控制CPU测试

  • 我们可以通过top命令来观察测试CPU的id

测试单线程

sysbench cpu run

使用CPU4

        

测试多线程

sysbench --threads=3 cpu run

使用CPU2、CPU4、CPU5

        

从测试结果来看,sysbench对CPU的测试并不是从0开始,也没有顺序可言。当需要单独测试某个CPU时是无法通过sysbench来控制的,所以需要使用另一个命令配合 numactl

yum安装方法:

sudo yum -y install numactl

详细用法见另一篇文章:

CPU 绑核_numactl-CSDN博客

测试CPU0的性能(在 sysbench 前面加 numactl -C 0 sysbench线程数为1)

numactl -C 0 sysbench cpu run

        

测试CPU1~4的性能(在 sysbench 前面加 numactl -C 1-4 同时sysbench也要修改为4个线程)

numactl -C 1-4 sysbench --threads=4 cpu run

        

测试CPU1,CPU3的性能(在 sysbench 前面加 numactl -C 1,3 同时sysbench也要修改为2个线程)

numactl -C 1,3 sysbench --threads=2 cpu run

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1931040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot下的定时魔法:揭秘@Scheduled注解的无限可能

在这个快节奏的时代,自动化与定时任务成为了提升效率的不二法门。而在Java的Spring Boot框架中,Scheduled注解就像是一位精通时间魔法的巫师,悄无声息地让你的应用按部就班地执行着各种定时任务。今天,就让我们一起揭开它的神秘面…

【Qt 常用控件】带你进一步了解常用控件

文章目录 1. Push Button2. Radio Button3. Check Box4. 显示类控件5. 输入类控件 QLineEdit5.1 正则表达式5.2 验证器 - 验证手机号5.3 验证两次密码是否一致5.3 明文的显示密码 1. Push Button 🐧给按钮设置图标 🐧 注意:设置快捷键需要在…

【运维资料大全】运维全套资料整理(word原件完整版)

信息安全类、运维类资料整合: 1. 等保测评模板 2. 安全检查表(IDS,Linux,数据库,Tomcat,防火墙等) 3. 服务器安全巡检表 4. 网络定向攻击风险分析表 5. 应用系统常规检测表 6. 企业漏洞管理50个…

Web开发:卡片翻转效果(HTML、CSS)

目录 一、实现效果 二、完整代码 三、实现过程 1、页面结构 2、初始样式 3、翻转效果 4、图片大小问题 一、实现效果 如下图所示,当鼠标移入某个盒子,就反转这个盒子,并显示其背面的内容——卡片翻转效果; 卡片翻转效果 二…

【HarmonyOS】HarmonyOS NEXT学习日记:二、ArkTs语法

【HarmonyOS】HarmonyOS NEXT学习日记:二、ArkTs语法 众所周知TS是JS的超集,而ArkTs则可以理解为是Ts的超集。他们的基础都基于JS,所以学习之前最好就JS基础。我的学习重点也是放在ArkTs和JS的不同点上。 文章主要跟着官方文档学习,跳过了一…

Golang | Leetcode Golang题解之第234题回文链表

题目: 题解: func reverseList(head *ListNode) *ListNode {var prev, cur *ListNode nil, headfor cur ! nil {nextTmp : cur.Nextcur.Next prevprev curcur nextTmp}return prev }func endOfFirstHalf(head *ListNode) *ListNode {fast : headslo…

多媒体软件开发选择Animate软件还是Unity3D软件?

以下内容可能有一些片面,因为多媒体软件开发平台有很多,因为接触Animate和Unity3D比较多,所以这里仅对这两款进行分析! Animate软件与Unity3D软件都是经常在多媒体展馆中用来制作互动展示内容的,对于这两种开发平台&a…

用AI生成Springboot单元测试代码太香了

你好,我是柳岸花开。 在当今软件开发过程中,单元测试已经成为保证代码质量的重要环节。然而,编写单元测试代码却常常让开发者头疼。幸运的是,随着AI技术的发展,我们可以利用AI工具来自动生成单元测试代码,极…

【系统架构设计师】十一、系统架构设计(中间件|典型应用架构)

目录 九、中间件 9.1 基础概念 9.2 中间件分类 十、典型应用架构 10.1 J2EE和四层结构 10.2 JSPServletJavaBeanDAO 10.3 .NET和J2EE之争 往期推荐 历年真题练习 九、中间件 之前总提到中间件,那么中间件到底是什么?在系统架构中又扮演者什么角…

摸鱼大数据——Kafka——kafka tools工具使用

可以在可视化的工具通过点击来操作kafka完成主题的创建,分区等操作 注意: 安装完后桌面不会有快捷方式,需要去电脑上搜索,或者去自己选的安装位置找到发送快捷方式到桌面! 连接配置 创建主题 删除主题 主题下的数据查看 数据显示问题说明 修改工具的数据显示类型 发…

【C++】vector的认识与使用

vector的认识与使用 认识vectorvector的使用Member functions(成员函数)构造函数(constructor)析构函数(destructor)赋值构造函数(operator) Iterators(迭代器)beginendrbeginrend Capacity(容量)sizemax_s…

zephyr设置BLE广播数据实例

目录 实例1:静态开启广播数据实例2:动态更改广播数据实例3:创建可连接的广播 实例1:静态开启广播数据 新建一个hello world的工程模板。 在prj.conf中开启蓝牙 CONFIG_BTy这个宏,默认会开启广播支持 ( BT_BROADCAS…

1448.统计二叉树中的好节点数目

给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。 「好节点」 X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 输入:root [3,1,4,3,null,1,5] 输出:4 解释&am…

【算法】LRU缓存

难度:中等 题目: 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,…

【人工智能新纪元】机器学习算法:探索智能背后的奥秘与常见利器

在这个日新月异的科技时代,人工智能(AI)如同一股不可阻挡的洪流,正深刻地改变着我们的世界。作为AI领域的核心驱动力之一,机器学习算法以其独特的魅力,引领着智能技术的飞速发展。今天,就让我们…

【学习】美国虚拟信用卡申请流程

WildCard 官方网址:https://bewildcard.com/i/PEACEFUL (使用邀请码“PEACEFUL”可以享受开卡88 折优惠,注册时提示填写邀请码就可以填写)

Vue3 组件向下通信 祖孙组件的通信 provide与inject

介绍 当父子间通信可以使用props,祖孙使用provide(传递)或inject(接收), 这时不管组件套的多深都可以向下传递。 例子 现在有一个需求,把App.vue的数据传递到MusciPlay.vue里。 App.vue …

跟李沐学AI:模型选择、过拟合和欠拟合

目录 训练误差和泛化误差 验证数据集和测试数据集 K-则交叉验证 模型总结 过拟合和欠拟合 模型容量 模型容量的影响 估计模型容量 数据复杂度 拟合总结 训练误差和泛化误差 训练误差:模型在训练数据上的误差 泛化误差:模型在新数据上的误差 …

移掉 K 位数字

题目链接 移掉 K 位数字 题目描述 注意点 1 < k < num.length < 10^5num 仅由若干位数字&#xff08;0 - 9&#xff09;组成除了 0 本身之外&#xff0c;num 不含任何前导零 解答思路 关键是怎样移掉K位数字保证移除后的数字是最小的。观察规律可得&#xff0c;为…

基于LSTM及其变体的回归预测

1 所用模型 代码中用到了以下模型&#xff1a; 1. LSTM&#xff08;Long Short-Term Memory&#xff09;&#xff1a;长短时记忆网络&#xff0c;是一种特殊的RNN&#xff08;循环神经网络&#xff09;&#xff0c;能够解决传统RNN在处理长序列时出现的梯度消失或爆炸的问题。L…