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安装

 
 
  1. # CentOS7下可使用yum安装

  2. yum install sysbench

3.CPU压测命令

 
 
  1. # 默认参数,素数上限10000,时间10秒,单线程

  2. sysbench cpu run

4.常用参数

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

 
 
  1. - 若设置为3,则表示235(这样要计算1-55次)

  2. - 若设置为10,则表示2357111317192329(这样要计算1-2929次)

  3. - 默认值为10000

--threads: 线程数

 
 
  1. - 若设置为1,则sysbench仅启动1个线程进行素数的计算

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

  3. - 默认值为1

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

 
 
  1. - 若设置为5,则sysbench会在5秒内循环往复进行素数计算,

  2.  从输出结果可以看到在5秒内完成了几次,

  3.  比如配合--cpu-max-prime=3,则表示第一轮算得3个素数,

  4.  如果时间还有剩就再进行一轮素数计算,直到时间耗尽。

  5.  每完成一轮就叫一个event

  6. - 默认值为10

  7. - 相同时间,比较的是谁完成的event

--events: event上限次数

 
 
  1. - 若设置为100,则表示当完成100event后,即使时间还有剩,也停止运行

  2. - 默认值为0,则表示不限event次数

  3. - 相同event次数,比较的是谁用时更少

5.案例结果分析

执行命令

 
 
  1. # 素数上限2万,时间10秒,2个线程

  2. sysbench cpu --cpu-max-prime=20000 --threads=2 run

结果分析

 
 
  1. sysbench 1.0.9 (using system LuaJIT 2.0.4)

  2. Running the test with following options:

  3. Number of threads: 2 // 指定线程数为2

  4. Initializing random number generator from current time

  5. Prime numbers limit: 20000 // 每个线程产生的素数上限均为2万个

  6. Initializing worker threads...

  7. Threads started!

  8. CPU speed:

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

  10. General statistics:

  11.    total time: 10.0017s // 共耗时10秒

  12.    total number of events: 6510 // 10秒内所有线程一共完成了6510次event

  13. Latency (ms):

  14.         min: 3.03 // 完成1次event的最少耗时3.03秒

  15.         avg: 3.07 // 所有event的平均耗时3.07毫秒

  16.         max: 3.27 // 完成1次event的最多耗时3.27毫秒

  17.         95th percentile: 3.13 // 95%次event在3.13秒毫秒内完成

  18.         sum: 19999.91 // 每个线程耗时10秒,2个线程叠加耗时就是20秒

  19. Threads fairness:

  20.    events (avg/stddev): 3255.0000/44.00 // 平均每个线程完成3255次event,标准差为44

  21.    execution time (avg/stddev): 10.0000/0.00 // 每个线程平均耗时10秒,标准差为0

event: 完成了几轮的素数计算

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

6.结果分析

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

  • 相同时间,比较event

  • 相同event,比较时间

  • 时间和event都相同,比较stddev(标准差)


微信公众号(小慢哥Linux运维)

每周一文,轻松学Linux运维

640?wx_fmt=jpeg

个人网站fzxiaomange.com

个人邮箱cyent@163.com


640?wx_fmt=gif


640?wx_fmt=gif




加入QQ技术交流群

扫码加入知数堂4群-王者峡谷

(QQ群号:650149401)

      

640?wx_fmt=png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值