TPCC sous Mysql

Posted on

Voici un how-to sur comment faire des benchmark TPC-C ( Transaction Processing Performance Council- Benchmark C) et avoir un référentiel standard pour vos moteur.
L’outil utilisé sera celui de Percona. En l’occurence tpcc-mysql.

1/ Installer les outils
# yum install bzr
$ bzr branch lp:~percona-dev/perconatools/tpcc-mysql
$ cd tpcc-mysql/src
$ make all

Cela créera 2 outils tpcc_load et tpcc_start.

2 / Création de la table
Importez les données .sql afin d’avoir la structure nécessaire au benchmark.

mysql> grant all privileges on tpcc.* to tpcc@’%’ identified by ‘test’;
mysql> create database tpcc;

$ mysql -u tpcc -p -h localhost tpcc < create_table.sql
$ mysql -u tpcc -p -h localhost tpcc < add_fkey_idx.sql

3 / TPCC LOAD

Lancer le script et renseignant les paramètres adéquats
$ ./tpcc_load
*************************************
*** ###easy### TPC-C Data Loader ***
*************************************

usage: tpcc_load [server] [DB] [user] [pass] [warehouse]
OR
tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh]

* [part]: 1=ITEMS 2=WAREHOUSE 3=CUSTOMER 4=ORDERS

$ ./tpcc_load localhost tpcc tpcc test 1
*************************************
*** ###easy### TPC-C Data Loader ***
*************************************
<Parameters>
[server]: localhost
[DBname]: tpcc
[user]: tpcc
[pass]: test
[warehouse]: 1
TPCC Data Load Started…
Loading Item
………………………………………….. 5000
Loading Orders for D=10, W= 1
………. 1000
………. 2000
………. 3000
Orders Done.

…DATA LOADING COMPLETED SUCCESSFULLY.

4 / TPCC START

Une fois les données charger il est tant de tester en lancer le script ./tpcc_start.
Lançons un test qui dure 180 secondes qui affiche un résultat tout les 60 secondes avec 4 connections et 1 datawarehouse.
./tpcc_start localhost tpcc tpcc test 1 4 60 180

***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
<Parameters>
[server]: localhost
[DBname]: tpcc
[user]: tpcc
[pass]: test
[warehouse]: 1
[connection]: 4
[rampup]: 60 (sec.)
[measure]: 180 (sec.)

RAMP-UP TIME.(60 sec.)

MEASURING START.

10, 61(0):0.8, 58(0):0.4, 5(0):1.0, 6(0):1.2, 5(0):3.8
20, 66(0):0.8, 70(0):0.4, 7(0):1.0, 7(0):1.2, 7(0):2.0

<RT Histogram>

1.New-Order

0.20, 536
0.40, 484
0.60, 166
0.80, 113
1.00, 66

<Constraint Check> (all must be [OK])
[transaction percentage]
Payment: 43.54% (>=43.0%) [OK]
Order-Status: 4.33% (>= 4.0%) [OK]
Delivery: 4.33% (>= 4.0%) [OK]
Stock-Level: 4.37% (>= 4.0%) [OK]

<TpmC>
371.000 TpmC

Les résultats à prendre en compte sont les ” MEASURING STATS” qui une fois mis au format excel vous permettent
d’afficher les courbes de performances de votre machine.
Une petite explication sur les STATS:
A, B(C):D, E(F):G, H(I):J, K(L):M, N(O):P
A = Temps écoulé en second
B = Nouvel ordre éffectué
C = Nouvel ordre éffectué avec retard
D = 90ème percentile pour les Nouveux Ordres ( en sec)
etc…
Ainsi que le TpmC (Transation per minute) vous donne un chiffre global en vues de comparaison

Advertisements

2 thoughts on “TPCC sous Mysql

    Cyril said:
    December 2, 2010 at 8:53 am

    Pour aller plus vite, il est préférable de charger les données puis d'ajouter les foreign keys et index ensuite.Le chargement peut aussi être parallelisé => voir le fichier load.sh qui donne un exemple qui peut être édité.donc$ mysql -u tpcc -p -h localhost tpcc < create_table.sql$ ./load.sh$ mysql -u tpcc -p -h localhost tpcc < add_fkey_idx.sql A noter que tpcc-mysql n'est pas une implémentation "officielle" du TPC-C et que des comparaisons avec des résultats officiels sont totalement hasardeux. Ceci reste néanmoins un bon test de performance pour mySQL. dans le genre, voir aussi : benchmarksql, hammerora, mysqlslap…

    Like

      Pait said:
      December 16, 2011 at 1:49 pm

      You’ve really captured all the essentials in this sbuejct area, haven’t you?

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s