MySQL benchmark on Debian server

By | 2016-03-17

Prerequisites

  • installed sysbench package
  • installed MySQL server
  • root access to MySQL server (for creating and dropping database)

Create test database

root@server:~# mysql -p

Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2544
Server version: 5.6.28-1 (Debian)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> \q
Bye

Prepare database for test

root@server:~# sysbench –test=oltp prepare –oltp-table-size=1000000 –mysql-db=test –mysql-user=root –mysql-password=mysqlrootpassword

sysbench 0.4.12: multi-threaded system evaluation benchmark

No DB drivers specified, using mysql
Creating table 'sbtest'...
Creating 1000000 records in table 'sbtest'...

Running test

root@server:~# sysbench –test=oltp –oltp-table-size=1000000 –mysql-db=test –mysql-user=root –mysql-password=mysqlrootpassword –max-time=60 –oltp-read-only=on –max-requests=0 –num-threads=8 run

sysbench 0.4.12:  multi-threaded system evaluation benchmark

No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8

Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Special distribution (12 iterations,  1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.

OLTP test statistics:
    queries performed:
        read:                            2110318
        write:                           0
        other:                           301474
        total:                           2411792
    transactions:                        150737 (2512.19 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 2110318 (35170.64 per sec.)
    other operations:                    301474 (5024.38 per sec.)

Test execution summary:
    total time:                          60.0023s
    total number of events:              150737
    total time taken by event execution: 479.3135
    per-request statistics:
         min:                                  1.18ms
         avg:                                  3.18ms
         max:                                 30.91ms
         approx.  95 percentile:               4.76ms

Threads fairness:
    events (avg/stddev):           18842.1250/91.20
    execution time (avg/stddev):   59.9142/0.00

The most important number is the transactions per second value. In current example: 2512.19 per second.

 

Cleanup

root@server:~$ mysql -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3798
Server version: 5.6.28-1 (Debian)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> drop database test;
Query OK, 1 row affected (0.18 sec)

mysql> \q
Bye

For more info at HowToForge