MS Azure : comparatif MySQL entre ClearDB, une Machine Virtuelle MariaDB et Azure MySQL - Partie 2

 

1.    Stress test avec mysqlslap

Voici la configuration utilisée pour « mysqlslap » pour notre benchmark avec les configurations ci-dessus :

  • Concurrence : 10
  • Itérations : 10
  • Requête : SELECT * FROM dept_emp;

On va donc envoyer au serveur MySQL, 10 par 10 (c’est la « concurrence »), la requête ci-dessus (« Sélectionner tout le contenu de la table ‘dept_emp’ » – qui contient 331603 lignes), et ça 10 fois d’affilée (ce sont les « itérations »).

 

La commande lancée depuis notre réseau local est la suivante :

$> mysqlslap --user={user} --password={password} --host={host} --concurrency=10 --iterations=10 --create-schema={nom de la base} --query="SELECT * FROM dept_emp;" –verbose

 

Voici les temps moyens qui en ressortent :

BenchmarkClearDBMariaDBMySQL preview
Temps moyen pour faire toutes les requêtes (en secondes)80.839107.96762.476
Temps MIN pour faire toutes les requêtes (en secondes)76.270106.54554.251
Temps MAX pour faire toutes les requêtes (en secondes)86.037108.77769.031
Nombre de clients pour faire toutes les requêtes101010
Moyenne du nombre de requête par client 111

 

Cela nous donne un premier ordre d’idée.

Voici un tableau récapitulatif entre temps passé et puissance prévue, ainsi que le coût facturé :

 

BenchmarkClearDBMariaDBMySQL preview
Nombre de cœur?11
Opérations et connexions10 connexions simultanées300 opérations d’E/S par seconde?
Coût mensuel approx.2,7811,2930
Temps moyen pour faire toutes les requêtes (en secondes)80.839107.96762.476
Temps MIN pour faire toutes les requêtes (en secondes)76.270106.54554.251
Temps MAX pour faire toutes les requêtes (en secondes)86.037108.77769.031
Nombre de clients pour faire toutes les requêtes101010
Moyenne du nombre de requête par client 111

 

Le meilleur rapport coût / temps de réponse serait donc au premier abord ClearDB. Mais avec une limite importante qui s’avère totalement bloquante dans un environnement de production : 10 requêtes simultanées maximum.

N.B. : les temps indiqués dépendent grandement de la qualité de votre connexion internet et de la saturation de la bande passante réseau à un instant donné. Tous les temps ont été récupérés depuis le site de SQLI Lyon dans les heures de non affluence (entre 7h et 9h et entre 18h et 20h).

 

2.    Tests sur configurations similaires au niveau du coût

Si le coût entre en compte dans votre calcul, nous allons monter en gamme sur ClearDB et notre machine virtuelle hébergeant notre MariaDB* et nous allons relancer nos tests. Voici les configurations choisies :

* : les plans supérieurs ne sont pas disponibles sur la preview de MySQL proposée aujourd’hui.

 

a.     ClearDB

Niveau tarifaire : Offre « Saturn » :

  • Connexions simultanées : 30
  • 5 Go de stockage
  • « Entry-Level production ready »
  • Mutualisé
  • SLA : 100%
  • Basculement (« failover ») automatique géo-distribué
  • Coût estimé : 49,99 $ / mois (env. 40 €)

 

b.     MariaDB

Niveau tarifaire : « A1_V2 – Standard » :

  • 1 Cœur
  • 2 Go de mémoire
  • 2 disques de données
  • 2×500 opérations d’E/S par seconde
  • Coût estimé : 25,72 € / mois

Nous allons aussi créer une machine virtuelle supplémentaire avec un stockage SSD, le coût étant plus proche de l’offre choisie sur ClearDB :

 

Niveau tarifaire : « DS1_V2 – Standard » :

  • 1 Cœur
  • 5 Go de mémoire
  • 2 disques de données
  • 3200 opérations d’E/S par seconde
  • 7 Go de stockage SSD local
  • Coût estimé : 42,66 € / mois

 

c.     MySQL preview

Niveau tarifaire : « De base » :

 

d.     Résultats stress test avec nos nouvelles configurations

BenchmarkClearDBMariaDBMySQL preview
HDDSSD
Nombre de cœur?111
Opérations et connexions30 connexions simultanées2×500 opérations d’E/S par seconde3200?
Coût mensuel approx. €4025,7242,6630
Temps moyen pour faire toutes les requêtes (en secondes)78.32352.08052.29862.476
Temps MIN pour faire toutes les requêtes (en secondes)74.93849.97247.85354.251
Temps MAX pour faire toutes les requêtes (en secondes)84.52055.87655.44869.031
Nombre de clients pour faire toutes les requêtes10101010
Moyenne du nombre de requête par client 1111

 

Nous nous rapprochons des conditions de production, même si la limite haute de 30 connexions simultanées sur ClearDB semble faible. On peut remarquer que notre VM MariaDB (aussi bien avec des disques durs que des disques SSD) a les meilleurs temps de réponse pour le coût le plus intéressant. La solution MySQL preview de Microsoft, pour un coup similaire, obtient également de bons temps de réponse et nous permet aussi d’oublier la partie administration système de notre VM (mise à jour des paquets, etc.).

Relançons nos tests avec 30 connexions simultanées, limite imposée par ClearDB.

 

BenchmarkClearDBMariaDBMySQL preview
HDDSSD
Nombre de cœur?111
Opérations et connexions30 connexions simultanées2×500 opérations d’E/S par seconde3200?
Coût mensuel approx. €4025,7242,6630
Temps moyen pour faire toutes les requêtes (en secondes)128.298202.084127.052128.967
Temps MIN pour faire toutes les requêtes (en secondes)124.585129.230125.973128.445
Temps MAX pour faire toutes les requêtes (en secondes)132.348423.900131.493130.020
Nombre de clients pour faire toutes les requêtes30303030
Moyenne du nombre de requête par client 1111

 

A nouveau, la nouvelle solution de MS MySQL Preview semble être la plus pertinente au niveau du rapport « temps de réponse / coût » tout en prenant en compte les 30 opérations et connexions maximum sur ClearDB et l’absence d’administration système.

 

3.    Pour aller plus loin

Nous l’avons vu dans cet article, nombreuses sont les solutions et configurations proposées sur la plateforme Azure.

Vous avez le choix entre une solution intégrée à Azure et ses garanties associées (SLA, infrastructure Azure, …), le déploiement d’une machine virtuelle et son administration système associée, ou de passer par un partenaire marketplace intégré à Azure dont vous dépendrez aussi bien pour le support que pour les SLA ou sauvegardes (backups) associées.

Il y en a pour toutes les bourses, et les coûts peuvent rapidement devenir élevés, c’est ici le prix à payer pour la sérénité et la stabilité Azure ; cela dépendra grandement du nombre d’utilisateurs que vous prévoyez dans votre application, votre cible géographique, vos compétences en administration système

Egalement, d’autres plateformes et hébergeurs proposent des services équivalents. Rien ne vous empêche de prendre un serveur dédié (pensez bien à votre scalabilité et vos besoins futurs), une machine virtuelle dans le cloud ou des services totalement gérés de A à Z comme Azure, Firebase (Google), ou encore OVH ou Clever Cloud (des services français si vous êtes sensibles à la souveraineté de vos informations, cf. le Plan Cloud voir #1 et #2)

 

Matthieu Ambrois, chef de projet SQLI

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

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

Inscription newsletter

Ne manquez plus nos derniers articles !