sysbench - 测试CPU性能

linux运维菜

发布时间:18-12-1922:52

前言

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

返回顶部