sysbench测试CPU


版本: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

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值