sysbench - 测试CPU性能
前言
sysbench 是一个多线程的 Linux 测试工具,可以进行 CPU 性能测试。对 CPU 的测试,主要是进行素数的加法运行。
常用参数
–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 个素数, 如果时间还有剩就再进行一轮素数计算,直到时间耗尽。
- 默认值为 10
相同时间,比较的是谁完成的 event 多
–events: event 上限次数
每完成一轮就叫一个 event,设置为 100,则表示当完成 100 次 event 后,即使时间还有剩,也停止运行
- 默认值为 0,则表示不限 event 次数
相同 event 次数,比较的是谁用时更少
例子
sysbench cpu --cpu-max-prime=20000 --threads=2 --time=30 run
sysbench 1.0.15 (using system LuaJIT 2.0.5)
Running the test with following options:
Number of threads: 2 #线程个数
Initializing random number generator from current time
Prime numbers limit: 20000 #素数上线
Initializing worker threads...
Threads started!
CPU speed:
events per second: 633.14 #所有线程平均每秒完成event的个数
General statistics:
total time: 30.0024s #总共消耗的时间
total number of events: 18997 #所有线程完成的event个数
Latency (ms):
min: 3.11 #完成1次event的最少耗时
avg: 3.16 #所有event的平均耗时
max: 8.80 # 完成1次event的最多耗时
95th percentile: 3.25 #95%次event完成的时间
sum: 59995.90 #所有线程的时间综合
Threads fairness:
events (avg/stddev): 9498.5000/5.50 #平均每个线程完成envet的次数,后一个值是标准差
execution time (avg/stddev): 29.9980/0.00 #平均每个线程平均耗时,后一个值是标准差
#stddev(标准差): 在相同时间内,多个线程分别完成的素数计算次数是否稳定,如果数值越低,则表示多个线程的结果越接近(即越稳定)。该参数对于单线程无意义。
总结
如果多台服务器进行 CPU 性能对比,当线程和素数个数一定时:相同时间,比较 event;相同 event,比较时间;时间和 event 都相同,比较 stddev(标准差)。
- 原文作者:Linux运维菜
- 原文链接:https://www.opcai.top/post/2018/2018-12/sysbench_cpu/
- 版权声明:本作品采用进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。