0

Comment faire un benchmark d’un serveur MySql?

Comment faire un benchmark d’un serveur MySql?

il exite plusieurs outils à ma connaissance, comme mysqlslap, supersmack et sysbench
Chacun a ses avantages et inconvénients, dans cet article nous allons voir l’utilisation, par des exemples, de sysbench

démonstration réalisée sur un serveur:

HP proliant ML110G7
Intel® Xeon® E3
RAM:4Go

OS: Debian 6 Squeeze, version MySql-server 5.1
fichier de conf my.cnf d’origine

Installationde sysbench
apt-get install sysbench
Création d’une base de test

On commence par ce connecter à notre serveur MySql

mysql -u root -pMONSUPERMOTDEPASS
...
mysql>

Nous allons créer une base de teste:

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

puis on quitte MySql

mysql>exit;
Bye
Préparation de la base de test
sysbench --test=oltp --mysql-user=root --mysql-password=MONSUPERMOTDEPASS --mysql-db=dbtest --mysql-host=localhost --db-driver=mysql --mysql-table-engine=innodb prepare

ce qui donne

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Creating table 'dbtest'...
Creating 10000 records in table 'dbtest'...
Test en lecture
sysbench --test=oltp --num-threads=4 --mysql-host=localhost --mysql-user=root --db-driver=mysql --mysql-password=MONSUPERMOTDEPASS --mysql-db=dbtest --max-time=60 --max-requests=0 --oltp-read-only=on run

Voici le résultat:

....
OLTP test statistics:
    queries performed:
        read:                            5452412
        write:                           0
        other:                           778916
        total:                           6231328
    transactions:                        389458 (6490.93 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 5452412 (90873.00 per sec.)
    other operations:                    778916 (12981.86 per sec.)

Test execution summary:
    total time:                          60.0004s
    total number of events:              389458
    total time taken by event execution: 238.6152
    per-request statistics:
         min:                                  0.31ms
         avg:                                  0.61ms
         max:                                 28.23ms
         approx.  95 percentile:               0.97ms

Threads fairness:
    events (avg/stddev):           97364.5000/208.63
    execution time (avg/stddev):   59.6538/0.00

Test en écriture
sysbench --test=oltp --num-threads=4 --mysql-host=localhost --mysql-user=root --db-driver=mysql --mysql-password=MONSUPERMOTDEPASS --mysql-db=dbtest --max-time=60 --max-requests=0 --oltp-read-only=off run

Voici le résultat:

OLTP test statistics:
    queries performed:
        read:                            167440
        write:                           59794
        other:                           23918
        total:                           251152
    transactions:                        11958  (199.24 per sec.)
    deadlocks:                           2      (0.03 per sec.)
    read/write requests:                 227234 (3786.18 per sec.)
    other operations:                    23918  (398.52 per sec.)

Test execution summary:
    total time:                          60.0167s
    total number of events:              11958
    total time taken by event execution: 239.9577
    per-request statistics:
         min:                                 14.00ms
         avg:                                 20.07ms
         max:                                488.78ms
         approx.  95 percentile:              33.33ms

Threads fairness:
    events (avg/stddev):           2989.5000/6.80
    execution time (avg/stddev):   59.9894/0.00

ceci sont des résultats bruts sans optimisation du serveur MySql, il reste à faire des tests comparatifs en modifiant le fichier de conf de MySql

pour plus d’infos sur sysbench, je vois invite à vous rendre là: http://www.linuxcertif.com/man/1/sysbench/
ou alors faire un man

man sysbench

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *