Sysbench性能测试(二): sysbench基本使用和CPU性能测试

Sysbench性能测试

传送门:
Sysbench性能测试(一): sysbench简介与安装
Sysbench性能测试(二): sysbench基本使用和CPU性能测试
Sysbench性能测试(三): 内存性能测试
Sysbench性能测试(四): 文件I/O性能测试
Sysbench性能测试(五): 数据库性能测试

3 sysbench使用
3-1 基本语法

通过如下语法使用sysbench进行基准测试:

sysbench [options]...[testname][command]
# command: prepare run cleanup help

# 通用选项([]内为默认值)
--threads=N                     	# 需要使用的线程数.[1]
--events=N		                   	# 请求总数的上限值.[0]
--time=N	                       	# 总执行时间上限值,0为无限.[10]
--forced-shutdown=STRING	      	# 超出--time时间后强制停止的等待时间,off为禁用.[off]
--thread-stack-size=SIZE	    	# 每个线程栈的空间大小.[64K]
--rate=N	                      	# 平均事务率,average transactions rate. 0 for unlimited rate.[0]
--report-interval=N		          	# 以指定的秒为间隔定期报告中间统计信息,0为禁用.[0]
--report-checkpoints=[LIST,...] 	# 在指定的时间点,转储完整的统计数据,并且复位所有的计数器.这个选项的参数是一个由逗号分隔的值,表示从测试开始到									 执行报告检查点的时间间隔,以秒为单位.默认[]为禁用
--debug[=on|off]                	# 输出更多的debug信息.[off]
--validate[=on|off]            		# 在可能的情况下执行有效性检查.[off]
--help[=on|off]                 	# 帮助信息.[off]
--version[=on|off]              	# 版本信息.[off]
--config-file=FILENAME          	# 包含命令行选项的文件
# 弃用的旧参数名称
--tx-rate=N                     	# deprecated alias for --rate [0]
--max-requests=N                	# deprecated alias for --events [0]
--max-time=N                    	# deprecated alias for --time [0]
--num-threads=N                 	# deprecated alias for --threads [1]

# 伪随机数生成选项
--rand-type=STRING # 随机数分布{uniform,gaussian,special,pareto} [special]
--rand-spec-iter=N # 用于数字生成的迭代次数 [12]
--rand-spec-pct=N  # 被视为“special”值的百分比,percentage of values to be treated as 'special' (for special distribution) [1]
--rand-spec-res=N  # percentage of 'special' values to use (for special distribution) [75]
--rand-seed=N      # 随机生成树种子. 0为以当前时间生成. [0]
--rand-pareto-h=N  # 帕累托分布参数h [0.2]

# Log选项
--verbosity=N # 详细级别 {5 - debug, 0 - 只输出重要信息} [3]
--percentile=N # 要在延迟统计中计算的百分比(1-100)。0为禁用[95]
--histogram[=on|off] # 在报告中打印延迟直方图[off]

# 数据库通用选项
--db-driver=STRING  # 指定数据库驱动('help' to get list of available drivers) [mysql]
--db-ps-mode=STRING # 预处理语句使用模式 {auto, disable} [auto]
--db-debug[=on|off] # 打印特定数据库的调试信息 print database-specific debug information[off]
3 sysbench使用
3-1 基本语法

通过如下语法使用sysbench进行基准测试:

sysbench [options]...[testname][command]
# command: prepare run cleanup help

# 通用选项([]内为默认值)
--threads=N                     	# 需要使用的线程数.[1]
--events=N		                   	# 请求总数的上限值.[0]
--time=N	                       	# 总执行时间上限值,0为无限.[10]
--forced-shutdown=STRING	      	# 超出--time时间后强制停止的等待时间,off为禁用.[off]
--thread-stack-size=SIZE	    	# 每个线程栈的空间大小.[64K]
--rate=N	                      	# 平均事务率,average transactions rate. 0 for unlimited rate.[0]
--report-interval=N		          	# 以指定的秒为间隔定期报告中间统计信息,0为禁用.[0]
--report-checkpoints=[LIST,...] 	# 在指定的时间点,转储完整的统计数据,并且复位所有的计数器.这个选项的参数是一个由逗号分隔的值,表示从测试开始到									 执行报告检查点的时间间隔,以秒为单位.默认[]为禁用
--debug[=on|off]                	# 输出更多的debug信息.[off]
--validate[=on|off]            		# 在可能的情况下执行有效性检查.[off]
--help[=on|off]                 	# 帮助信息.[off]
--version[=on|off]              	# 版本信息.[off]
--config-file=FILENAME          	# 包含命令行选项的文件
# 弃用的旧参数名称
--tx-rate=N                     	# deprecated alias for --rate [0]
--max-requests=N                	# deprecated alias for --events [0]
--max-time=N                    	# deprecated alias for --time [0]
--num-threads=N                 	# deprecated alias for --threads [1]

# 伪随机数生成选项
--rand-type=STRING # 随机数分布{uniform,gaussian,special,pareto} [special]
--rand-spec-iter=N # 用于数字生成的迭代次数 [12]
--rand-spec-pct=N  # 被视为“special”值的百分比,percentage of values to be treated as 'special' (for special distribution) [1]
--rand-spec-res=N  # percentage of 'special' values to use (for special distribution) [75]
--rand-seed=N      # 随机生成树种子. 0为以当前时间生成. [0]
--rand-pareto-h=N  # 帕累托分布参数h [0.2]

# Log选项
--verbosity=N # 详细级别 {5 - debug, 0 - 只输出重要信息} [3]
--percentile=N # 要在延迟统计中计算的百分比(1-100)。0为禁用[95]
--histogram[=on|off] # 在报告中打印延迟直方图[off]

# 数据库通用选项
--db-driver=STRING  # 指定数据库驱动('help' to get list of available drivers) [mysql]
--db-ps-mode=STRING # 预处理语句使用模式 {auto, disable} [auto]
--db-debug[=on|off] # 打印特定数据库的调试信息 print database-specific debug information[off]
3-2 CPU性能测试

​ sysbench的CPU测试是在指定时间内,进行多轮次的素数计算。除了1和它自身外,不能被其他自然数整除的数叫做素数(质数)。一次event代表一轮的素数计算,即算出*–cpu-max-prime*以内的所有素数。

能获得的测量指标

  • 每秒完成的events数
  • N%events的耗时范围。例:95%的events耗时在0.5ms以内
  • 总耗时
  • 完成的events总数
  • 所有events的最小、最大、平均耗时
  • 所有线程耗时总和
  • 平均每线程完成events数/标准差
  • 平均每线程耗时/标准差

CPU性能测试参数

cpu options:
  --cpu-max-prime=N # 素数计算的上限值. [10000]

测试实例

# 测试素数上限=10000,执行时间=60s,线程数=4,每隔3s输出一次中间结果
sysbench --time=60 --threads=4 --report-interval=3 --test=cpu --cpu-max-prime=10000  run

测试结果

Threads started!

[ 3s ] thds: 4 eps: 9254.98 lat (ms,95%): 0.44 # eps:每秒9254.98events. 95%events耗时在0.44ms内
[ 6s ] thds: 4 eps: 9267.36 lat (ms,95%): 0.44
[ 9s ] thds: 4 eps: 9263.87 lat (ms,95%): 0.44
[ 12s ] thds: 4 eps: 9268.21 lat (ms,95%): 0.44
...# 中间输出部分删除
[ 54s ] thds: 4 eps: 9267.25 lat (ms,95%): 0.44
[ 57s ] thds: 4 eps: 9265.27 lat (ms,95%): 0.44
CPU speed:
    events per second:  9265.61 # 9265.61events/s

General statistics:
    total time:                          60.0012s # 总耗时
    total number of events:              556003 # 总events数

Latency (ms):
         min:                                    0.43 # 最小耗时
         avg:                                    0.43 # 平均耗时
         max:                                    4.76 # 最大耗时
         95th percentile:                        0.44 # 95%events耗时在0.44ms内
         sum:                               239317.78 # 所有线程总耗时

Threads fairness:
    events (avg/stddev):           139000.7500/66.02 # 平均每线程完成events数/标准差
    execution time (avg/stddev):   59.8294/0.02 # 平均每线程执行时间/标准差
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值