sysbench安装及做性能测试

一、安装过程:

先下载依赖包
yum install automake autoconf -y

运行./configure && make 命令,可能有以下的报错
../libtool: line 5172: : command not found
修改configure.ac文件
spacer.gif

将LIBTOOL注释,并增加AC_PROG_RANLIB
spacer.gif

修改之后运行如下命令
./autogen.sh && ./configure && make
完成之后,进入sysbench文件夹,可以看到sysbench命令已经编译完成。


二、测试过程:

1、cpu性能测试:

[root@mysql5 ~]# sysbench --test=cpu --cpu-max-prime=20000 run

sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Random number generator seed is 0 and will be ignored


Primer numbers limit: 20000

Threads started!


Test execution summary:
    total time:                          25.0785s
    total number of events:              10000
    total time taken by event execution: 25.0757s
    per-request statistics:
         min:                                  2.28ms
         avg:                                  2.51ms
         max:                                  6.55ms
         approx.  95 percentile:               2.89ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   25.0757/0.00

CPU性能测试有一个需要注意的地方,上面的测试只使用了一个线程,如果在两个cpu processor不同的电脑上做比较,这是不公平的。公平的做法是指定合理的线程数,如下所示:

[root@mysql5 lib]# sysbench --test=cpu --num-threads=`grep "processor" /proc/cpuinfo | wc -l` --cpu-max-prime=200000 run


[root@mysql5 data]# top

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                        

10029 root      20   0 18172 1220  884 S 99.9  0.1   7:49.94 sysbench                                                                                                        

    1 root      20   0 19232 1384 1088 S  0.0  0.1   0:01.27 init                                                                                                            

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                                                                                                        

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                      

    4 root      20   0     0    0    0 S  0.0  0.0   0:02.08 ksoftirqd/0                                                                                                      

    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0


[root@mysql5 lib]# sysbench --test=cpu --num-threads=`grep "processor" /proc/cpuinfo | wc -l` --cpu-max-prime=200000 run
sysbench 0.5:  multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Random number generator seed is 0 and will be ignored
Primer numbers limit: 200000
Threads started!
Test execution summary:
 
   total time:                          601.4066s
    total number of events:              10000
    total time taken by event execution: 601.3990s
    per-request statistics:
         min:                                 57.77ms
         avg:                                 60.14ms
         max:                                103.32ms
         approx.  95 percentile:              63.47ms
Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   601.3990/0.00


2、线程测试:

[root@mysql5 ~]# sysbench --test=threads --number-threads=64 --threads-yields=100 --threads-locks=2 run


sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Random number generator seed is 0 and will be ignored


Threads started!


Test execution summary:
    total time:                          2.1750s
    total number of events:              10000
    total time taken by event execution: 2.1741s
    per-request statistics:
         min:                                  0.17ms
         avg:                                  0.22ms
         max:                                  1.52ms
         approx.  95 percentile:               0.29ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   2.1741/0.00


[root@mysql5 ~]# 


3、磁盘IO性能测试:

[root@mysql5 ~]# sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare
sysbench 0.5:  multi-threaded system evaluation benchmark

[root@mysql5 ~]# sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run    
sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Random number generator seed is 0 and will be ignored


Threads started!

Operations performed:  6005 reads, 3995 writes, 12800 Other = 22800 Total
Read 93.828Mb  Written 62.422Mb  Total transferred 156.25Mb  (2.9214Mb/sec)
  186.97 Requests/sec executed

Test execution summary:
    total time:                          53.4846s
    total number of events:              10000
    total time taken by event execution: 546.8636s
    per-request statistics:
         min:                                  0.00ms
         avg:                                 54.69ms
         max:                                748.10ms
         approx.  95 percentile:             190.17ms

Threads fairness:
    events (avg/stddev):           625.0000/31.96
    execution time (avg/stddev):   34.1790/0.91

[root@mysql5 ~]# sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup
sysbench 0.5:  multi-threaded system evaluation benchmark

[root@mysql5 ~]# 

如果需要测试seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)6种模式,并且还可能需要测试不同的线程和不同的文件块下磁盘的性能表现,这时,可以使用如下脚本达到测试目的。


4、内存测试:

[root@mysql5 ~]# sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run


sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Random number generator seed is 0 and will be ignored


Threads started!

Operations performed: 524288 (1031670.94 ops/sec)

4096.00 MB 
transferred (8059.93 MB/sec)


Test execution summary:
    total time:                          0.5082s
    total number of events:              524288
    total time taken by event execution: 0.4682s
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.00ms
         max:                                  0.47ms
         approx.  95 percentile:               0.00ms

Threads fairness:
    events (avg/stddev):           524288.0000/0.00
    execution time (avg/stddev):   0.4682/0.00

[root@mysql5 ~]# 


5、OLTP测试:

[root@mysql5 ~]# sysbench --test=oltp --mysql-table-engine=myisam --loltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-host=localhost --mysql-password=dongbo prepare
sysbench 0.5:  multi-threaded system evaluation benchmark

PANIC: unprotected error in call to Lua API (cannot open oltp: No such file or directory)
[root@mysql5 ~]# 

此步骤测试失败:0.5版本所有OLTP都是通过lua脚本进行测试的;

测试过程:

[root@mysql5 sysbench]# ./sysbench  --test=./tests/db/oltp.lua  --debug=yes --mysql-host=localhost --mysql-socket=/tmp/mysql.sock --mysql-db=test --mysql-user=root --mysql-password=dongbo --mysql-table-engine=innodb  --max-requests=0 --max-time=60 --num-threads=16 --oltp-table-size=100000 --report-interval=10 prepare


sysbench 0.5:  multi-threaded system evaluation benchmark

Creating table 'sbtest1'...
Inserting 100000 records into 'sbtest1'
[root@mysql5 sysbench]# ./sysbench  --test=./tests/db/oltp.lua  --debug=yes --mysql-host=localhost --mysql-socket=/tmp/mysql.sock --mysql-db=test --mysql-user=root --mysql-password=dongbo --mysql-table-engine=innodb  --max-requests=0 --max-time=60 --num-threads=16 --oltp-table-size=100000 --report-interval=10 run   

 
sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Report intermediate results every 10 second(s)
Random number generator seed is 0 and will be ignored
Threads started!

[  10s] threads: 16, tps: 266.12, reads/s: 3747.83, writes/s: 1067.69
[  20s] threads: 16, tps: 261.51, reads/s: 3660.58, writes/s: 1046.42
[  30s] threads: 16, tps: 253.20, reads/s: 3545.64, writes/s: 1015.61
[  40s] threads: 16, tps: 260.89, reads/s: 3647.35, writes/s: 1041.16
[  50s] threads: 16, tps: 229.60, reads/s: 3219.47, writes/s: 920.79
[  60s] threads: 16, tps: 266.11, reads/s: 3725.40, writes/s: 1059.66
OLTP test statistics:
    queries performed:
        read:                            215474
        write:                           61564
        other:                           30782
        total:                           307820
    transactions:                        15391  (256.46 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 277038 (4616.26 per sec.)
    other operations:                    30782  (512.92 per sec.)

Test execution summary:
    total time:                          60.0136s
    total number of events:              15391
    total time taken by event execution: 959.8978s
    per-request statistics:
         min:                                  8.79ms
         avg:                                 62.37ms
         max:                                727.83ms
         approx.  95 percentile:              99.97ms

Threads fairness:
    events (avg/stddev):           961.9375/8.31
    execution time (avg/stddev):   59.9936/0.00

[root@mysql5 sysbench]# ./sysbench  --test=./tests/db/oltp.lua  --debug=yes --mysql-host=localhost --mysql-socket=/tmp/mysql.sock --mysql-db=test --mysql-user=root --mysql-password=dongbo --mysql-table-engine=innodb  --max-requests=0 --max-time=60 --num-threads=16 --oltp-table-size=100000 --report-interval=10 cleanup


sysbench 0.5:  multi-threaded system evaluation benchmark

Dropping table 'sbtest1'...
[root@mysql5 sysbench]# 
[root@mysql5 sysbench]# 

6、互斥锁(mutex)

[root@mysql5 data]# sysbench --test=mutex  --num-threads=16 --mutex-num=2048 --mutex-locks=100000000 --mutex-loops=5000 run
sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Random number generator seed is 0 and will be ignored
Threads started!


Test execution summary:
    total time:                          67.8070s
    total number of events:              16
    total time taken by event execution: 1081.9077s
    per-request statistics:
         min:                              67240.36ms
         avg:                              67619.23ms
         max:                              67802.58ms
         approx.  95 percentile:         10000000.00ms

Threads fairness:
    events (avg/stddev):           1.0000/0.00
    execution time (avg/stddev):   67.6192/0.17

[root@mysql5 data]# 




你可能感兴趣的:(command,System,number,文件夹,following)