MySQL 5.6 rock suite
Voici la suite du post MySQL 5.6 rock, dans lequel je test MySQL 5.5 & 5.6, MariaDB 5.3 & 5.5 et Percona server 5.5.
Pour cet article, toujours un bench. Le contexte est assez proche, à la différence près que cette fois les serveurs sont testés en lecture (65%) et écriture (35%).
Les règles du bench
sysbench, options read/write complex, 128 connexions concurrentes
Moteur InnoDB, 30 millions de lignes, 6.7 Go de données
Pas de warmup, le disque doit être sollicité au maximum.
Les tests ont été lancé 4 fois sur chaque version, avec restart du serveur entre chaque run.
Les confs sont proche cad les paramètres communs à toutes les versions ont les mêmes valeurs, les autres, leur valeur par défaut
La moyenne donne les résultats suivants:
95 centile (en ms)
- Percona 5.5.12: 182.135
- MariaDB 5.3.5 *: 132.3025
- MariaDB 5.5.20: 183.1275
- MySQL 5.5.22: 160.8525
- MySQL 5.6.4: 153.6175
Nombre de transactions par seconde
- Percona 5.5.12: 2170.5
- MariaDB 5.3.5 *: 2016.505
- MariaDB 5.5.20: 2134.9125
- MySQL 5.5.22: 1680.7525
- MySQL 5.6.4: 1738.4775
Mes commentaires
En matière de temps de réponse, MariaDB 5.3 (branche MySQL 5.1 + nombreuses améliorations apportées par Monty Program AB) est sans (trop de) surprises, celui qui donne les meilleurs temps de réponse sur 95 % des meilleurs requêtes (95 centile). Mais il sera moins scalable du fait de son unique Buffer pool.
La bonne surprise vient de MySQL 5.6 où le temps de réponse est significativement meilleur qu’avec la branche 5.5 (de 5 à 15%).
En ce qui concerne débit maximum, les TPS, MySQL est en retrait. Il plafonne aux environs des 1700 TPS alors que MariaDB & Percona dépassent sans souci les 2000 !
Cet écart (20% tout de même !!!) s’explique sans doute par de meilleurs performances d’XtraDB (qui équipe MariaDB & Percona) en matière de débit, par rapport à son cousin InnoDB (XtraDB étant un fork d’innoDB, développé par Percona).
Le produit s’améliore donc, et ce même sans tuning particulier, c’est une très bonne chose !
Ceci dit, l’optimisation du serveur MySQL risque de commencer dès le choix de la distrib, en prenant en compte le workload (lecture seule, écriture seule, lecture+écriture), le besoin (temps de réponse, débit maximal), …
Avoir dans son équipe un profile MySQL expérimenté devient de plus en plus nécessaire. Et ça je trouve que c’est plutôt une bonne chose 😉
Divers
sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=40000000 \
--oltp-test-mode=complex --max-requests=0 --max-time=600 \
--num-threads=128
innodb_buffer_pool_instances 4 (1 pour MariaDB 5.3)
innodb_buffer_pool_size 34359738368
innodb_doublewrite ON
innodb_file_per_table ON
innodb_flush_log_at_trx_commit 2
innodb_log_buffer_size 8388608
innodb_log_file_size 152043520
innodb_log_files_in_group 2
innodb_version 1.1.8-24.1 / 1.2.4 (ou XtraDB 1.1.6-20.1)
general_log OFF
log_bin OFF
slow_query_log OFF
Name: sbtest Engine: InnoDB Version: 10 Row_format: Compact Rows: 30000237 Avg_row_length: 224 Data_length: 6741295104 Max_data_length: 0 Index_length: 477085696 Data_free: 6291456 Auto_increment: 33800371 Create_time: 2012-03-29 18:42:34 Update_time: NULL Check_time: NULL Collation: utf8_swedish_ci
Architecte Solution Cloud chez Oracle
MySQL Geek, Architecte, DBA, Consultant, Formateur, Auteur, Blogueur et Conférencier.
—–
Blog: www.dasini.net/blog/en/
Twitter: https://twitter.com/freshdaz
SlideShare: www.slideshare.net/freshdaz
Youtube: https://www.youtube.com/channel/UC12TulyJsJZHoCmby3Nm3WQ
—–
[…] 2ème partie de l’article … […]
Hello,
As-tu pu tester l’influence du MRR (Multi Range Read) ?
http://www.mysqlperformanceblog.com/2012/03/21/multi-range-read-mrr-in-mysql-5-6-and-mariadb-5-5/
En IO bound, MySQL 5 est censé s’effondrer par rapport à MySQL 6.
Salut Denis,
sysbench en mode OLTP génère des requêtes « orientée web » ie assez simple (même avec le mode complex).
Les améliorations apportée à l’optimiseur (BKA, MRR, ICP…) ne sont pas vraiment utiles dans ce cadre.
Ovais lui utilise TPC-H avec la requête 10, plus orientée décisionnel/OLAP. En d’autres termes, on ne teste pas la même chose.
Lui montre que MySQL 5.6 & MariaDB 5.5 est maintenant une alternative (plus) sérieuse dans un mode non web (pour simplifier)
Moi, je montre que dans un contexte web, le produit s’améliore encore.
Bref, que du bon 🙂