linux sysbench (一): CPU性能测试详解

网上sysbench教材众多,但没有一篇中文教材对cpu测试参数和结果进行详解。 本文旨在能够让读者对sysbench的cpu有一定了解。

小慢哥的原创文章,欢迎转载


1.sysbench基础知识

sysbench的cpu测试是在指定时间内,循环进行素数计算

素数(也叫质数)就是从1开始的自然数中,无法被整除的数,比如2、3、5、7、11、13、17等。 编程公式:对正整数n,如果用2到根号n之间的所有整数去除,均无法整除,则n为素数。

2.sysbench安装

# CentOS7下可使用yum安装
yum install sysbench

3.CPU压测命令

# 默认参数,素数上限10000,时间10秒,单线程
sysbench cpu run

4.常用参数

--cpu-max-prime: 素数生成数量的上限

- 若设置为3,则表示2、3、5(这样要计算1-5共5次)
- 若设置为10,则表示2、3、5、7、11、13、17、19、23、29(这样要计算1-29共29次)
- 默认值为10000

--threads: 线程数

- 若设置为1,则sysbench仅启动1个线程进行素数的计算
- 若设置为2,则sysbench会启动2个线程,同时分别进行素数的计算
- 默认值为1

--time: 运行时长,单位秒

- 若设置为5,则sysbench会在5秒内循环往复进行素数计算,
  从输出结果可以看到在5秒内完成了几次,
  比如配合--cpu-max-prime=3,则表示第一轮算得3个素数,
  如果时间还有剩就再进行一轮素数计算,直到时间耗尽。
  每完成一轮就叫一个event
- 默认值为10
- 相同时间,比较的是谁完成的event多

--events: event上限次数

- 若设置为100,则表示当完成100次event后,即使时间还有剩,也停止运行
- 默认值为0,则表示不限event次数
- 相同event次数,比较的是谁用时更少

5.案例结果分析

执行命令

# 素数上限2万,默认10秒,2个线程
sysbench cpu --cpu-max-prime=20000 --threads=2 run

结果分析

sysbench 1.0.9 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 2 // 指定线程数为2
Initializing random number generator from current time
Prime numbers limit: 20000 // 每个线程产生的素数上限均为2万个
Initializing worker threads...
Threads started!

CPU speed:
    events per second: 650.74 // 所有线程每秒完成了650.74次event

General statistics:
    total time: 10.0017s // 共耗时10秒
    total number of events: 6510 // 10秒内所有线程一共完成了6510次event

Latency (ms):
         min: 3.03 // 完成1次event的最少耗时3.03秒
         avg: 3.07 // 所有event的平均耗时3.07毫秒
         max: 3.27 // 完成1次event的最多耗时3.27毫秒
         95th percentile: 3.13 // 95%次event在3.13秒毫秒内完成
         sum: 19999.91 // 每个线程耗时10秒,2个线程叠加耗时就是20秒

Threads fairness:
    events (avg/stddev): 3255.0000/44.00 // 平均每个线程完成3255次event,标准差为44
    execution time (avg/stddev): 10.0000/0.00 // 每个线程平均耗时10秒,标准差为0

event: 完成了几轮的素数计算 stddev(标准差): 在相同时间内,多个线程分别完成的素数计算次数是否稳定,如果数值越低,则表示多个线程的结果越接近(即越稳定)。该参数对于单线程无意义。

6.结果分析

如果有2台服务器进行CPU性能对比,当素数上限和线程数一致时:

  • 相同时间,比较event谁更多
  • 相同event,比较时间谁更少
  • 时间和event都相同,比较stddev(标准差)谁更低

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

0662-6.2.0-CDSW集成Active Directory后登录异常分析

Fayson在前面的文章《09-如何为CDSW集成Active Directory认证》,在CDSW集成AD后,有部分用户登录时提示“Email address...

13130
来自专栏Python自动化测试

微服务与测试(四)

在前面的文章体系中对什么是微服务,以及微服务的优点和缺点都有所介绍,同时也介绍了单一应用程序的架构它所存在的缺点,以及微服务对单一程序架构进行的...

20140
来自专栏数据派THU

独家 | 如何从头开始为MNIST手写数字分类建立卷积神经网络(附代码)

尽管数据集得到了有效的解决,但它可以作为学习和实践如何开发、评估和使用卷积深度学习神经网络从头开始进行图像分类的基础。这包括如何开发一个用于评估模型性能的强大测...

14220
来自专栏johnnyxsu技术交流分享

CDN源站可用性测试工具

目前较大规模的网站在搭建时都会使用CDN的架构,以提高用户访问网站的速度。如果访问量较大话一台服务器的性能已经不能够满足当前的业务需求,此时往往都用到负载均衡,...

2.1K250
来自专栏SRE运维实践

最佳运维实践了解一下

很多事,你不努力一下,你都体验不到绝望的感觉。。。哈哈,越努力越绝望怎么办。。。怎么办。。。哈哈

11540
来自专栏SRE运维实践

听说你们都在用python

我以为有了蚊帐,就可以高枕无忧。。。。万万没想到,我把我和蚊子都放到了蚊帐里面,照样缠绵一晚上。。。

11230
来自专栏Datawhale专栏

【Python编程导论】第六章- 测试与调试

测试和调试的 关键就是将程序分解成独立的部件,可以在不受其他部件影响的情况下实现、测试和调试。

11730
来自专栏SRE运维实践

容器?

容器技术这么牛,那么如果没有用这个技术,如何说服大家来采用这门技术?想了一晚上,毫无头绪。。。三千烦恼丝了解一下。。。

15740
来自专栏SRE运维实践

黑盒监控与白盒监控

谈到监控,有各种各样的监控软件,有各种各样的存储数据的格式,最流行的莫过于将相关的监控数据存储在mysql中,建一个表,然后按照时间来进行监控,这种方式最大的...

24230
来自专栏音视频技术

Instagram:如何提升音乐音频质量?

Instagram在形成有意义的社区方面起着至关重要的作用,这是因为人们可以在Instagram上相互联系彼此并分享对他们来说最感兴趣的事情。为了帮助更好地促进...

17670

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励