网上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(标准差)

最新文章

  1. post和get请求
  2. Linux下Hadoop2.6.0集群环境的搭建
  3. Contacts群组添加成员,多选列表过滤已添加数据
  4. IE下AjaxForm上传文件直接提示下载的兼容性Bug
  5. error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
  6. Pearls
  7. Windows共享设定-使用net use添加网络盘带上账号密码
  8. Ubuntu下安装lamp
  9. 循环对XML文档添加Attribute以及移除Element 【转】
  10. poj 3020 Antenna Placement (最小路径覆盖)
  11. [linux]chown和chmod命令
  12. Angular 4 自定义组件封装遇见的一些事儿
  13. 【转】mysql数据库优化大全
  14. XIV Open Cup named after E.V. Pankratiev. GP of America
  15. 企业BGP网络规划案例(三)
  16. Redis基于eval的多字段原子增量计算
  17. 原创工具binlog2sql:从MySQL binlog得到你要的SQL
  18. OAuth 授权
  19. 用layer插件实现tp3.2的分页
  20. SAP订单状态最详细的解释

热门文章

  1. 【PostgreSQL-9.6.3】约束
  2. js动态操作订单表格
  3. SSDB 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.
  4. 图像的全局特征--HOG特征、DPM特征
  5. Python批量添加库搜索路径
  6. [Intermediate Algorithm] - Everything Be True
  7. PDF怎么替换页面,教你一招秒实现
  8. mysql主从机制的部署与应用
  9. Doxyfile中插入图片
  10. 【剑指Offer】4、重建二叉树