Table of Contents

Benchmarking

Benchmark website

Benchmark with ab tool

ab tool will be installed when we install webserver apache

Syntax and basic options

examples

Benchmark with sysbench(CPU, File IO, MySQL)

Download and Install

Download:

wget http://downloads.mysql.com/source/sysbench-0.4.12.5.tar.gz

Install:

yum install libtool
cd sysbench
./autogen.sh
./configure
make & make install

Syntax and Basic Options

CPU Benchmark

run script below:

sysbench --test=cpu --cpu-max-prime=20000 run

output:

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


Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          38.5596s
    total number of events:              10000
    total time taken by event execution: 38.5538
    per-request statistics:
         min:                                  3.69ms
         avg:                                  3.86ms
         max:                                 23.75ms
         approx.  95 percentile:               4.44ms

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

And You see a lot of numbers, the most important of it is the total time:

total time:                          38.5596s

Of course, you must compare benchmarks across multiple systems to know what these numbers are worth.

File IO Benchmark

  1. Step1: Prepare:
    sysbench --test=fileio --file-total-size=5G prepare
  2. Step2: Run benchmark
    sysbench --test=fileio --file-total-size=5G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

    output:

    sysbench 0.4.12.5:  multi-threaded system evaluation benchmark
    
    Running the test with following options:
    Number of threads: 1
    Initializing random number generator from timer.
    
    Random number generator seed is 0 and will be ignored
    
    
    Extra file open flags: 0
    128 files, 40Mb each
    5Gb total file size
    Block size 16Kb
    Number of random requests for random IO: 0
    Read/Write ratio for combined random IO test: 1.50
    Periodic FSYNC enabled, calling fsync() each 100 requests.
    Calling fsync() at the end of test, Enabled.
    Using synchronous I/O mode
    Doing random r/w test
    Threads started!
    Time limit exceeded, exiting...
    Done.
    
    Operations performed:  701100 Read, 467400 Write, 1495579 Other = 2664079 Total
    Read 10.698Gb  Written 7.132Gb  Total transferred 17.83Gb  (60.859Mb/sec)
     3894.99 Requests/sec executed
    
    Test execution summary:
        total time:                          300.0011s
        total number of events:              1168500
        total time taken by event execution: 134.9176
        per-request statistics:
             min:                                  0.00ms
             avg:                                  0.12ms
             max:                                 14.60ms
             approx.  95 percentile:               0.28ms
    
    Threads fairness:
        events (avg/stddev):           1168500.0000/0.00
        execution time (avg/stddev):   134.9176/0.00

    The important number is the Mb/sec value:

    Read 10.698Gb  Written 7.132Gb  Total transferred 17.83Gb  (60.859Mb/sec)
  3. Step3: Cleanup
    sysbench --test=fileio --file-total-size=5G cleanup

MySQL Server Benchmark

  1. Step1: To measure MySQL performance, we first create a test table in the database test with 1,000,000 rows of data:
    sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
  2. Step2: Afterwards, you can run the MySQL benchmark as follows:
    sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
  3. Step3: To clean up the system afterwards (i.e., remove the test table), run:
    sysbench --test=oltp --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword cleanup

Benchmark with graphing software

Better Cacti Templates

Download: wget https://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz

Benchmark network speed

using speedtest

  1. Step1: install speedtest on linux:
    pip install speedtest-cli
  2. Step2: Run test
    speedtest

network monitor with iptraf

refer: http://www.tecmint.com/real-time-interactive-ip-lan-monitoring-with-iptraf-tool/

Benchmark File System Read Write Performance

refer: http://www.slashroot.in/linux-file-system-read-write-performance-test

Using dd command

Using hdparm

hdparm -tT /dev/sdb1

output:

/dev/sdb1:
 Timing cached reads:   12982 MB in  2.00 seconds = 6500.84 MB/sec
 Timing buffered disk reads: 346 MB in  3.01 seconds = 115.04 MB/sec