sysbench 的 CPU 测试模式

好问题 👍,sysbench 的 CPU 测试模式sysbench cpu)和数据库/IO 测试不一样,它主要是 纯计算压力测试,目的是衡量 CPU 的算力,而不是内存/磁盘。下面我分几个方面讲清楚它的原理:


1. 测试逻辑

sysbench --test=cpu run(新版本是 sysbench cpu run)模式下:

  • sysbench 会不断计算 素数(prime numbers),判断某个数是否是素数。
  • 具体做法是:对每个候选数进行 整数除法,检查是否能被整除。
  • 这个操作是典型的 整数运算(无浮点、无IO),因此非常依赖 CPU 的 ALU(算术逻辑单元)和 cache。

👉 所以 sysbench CPU 测试 本质是跑一个素数筛选的循环,看 CPU 每秒能做多少次运算


2. 关键参数

  • --cpu-max-prime=N
    指定最大素数范围,比如 sysbench cpu --cpu-max-prime=20000 run,表示测试时要计算从 1 到 20000 的素数。

    • 数字越大 → 单次计算更重,CPU 压力更高。
    • 数字太小 → 很快就算完了,测试结果可能偏高。
  • --threads=N
    指定并发线程数,模拟多核利用率。

  • --time
    指定测试时长,默认是 10 秒。


3. 结果指标

运行后 sysbench 会输出:

  • events per second:每秒完成多少次“任务”(计算 prime 范围内素数的过程)。
  • total number of events:总共完成了多少次素数计算。
  • execution time:总执行时间。
  • per-request statistics:平均、最小、最大、95%延迟(虽然CPU测试里延迟意义不大)。

4. 原理总结

  1. CPU-bound 测试:只依赖 CPU 整数运算单元,不涉及内存/磁盘。

  2. 工作负载模式:用素数筛选算法模拟计算压力,保证 CPU 满载。

  3. 并行度:通过 --threads 控制,测试多核/超线程性能。

  4. 局限性

    • 算法比较简单,不能全面代表真实负载(比如数据库里的复杂查询)。
    • cache 影响很小,因为素数计算只需要少量循环变量。

✅ 简单一句话:
sysbench CPU 测试就是跑素数筛选,看 CPU 每秒能完成多少次运算,是一种“纯计算、无IO”的基准测试。

要不要我给你画一张 sysbench CPU 测试流程图(从线程启动 → 素数判断循环 → 收集统计)?这样你看起来会更直观。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值