Test d’IOPS dans une VM Microsoft Azure

Après avoir testé les IOPS sur des VMs Amazon EC2, le billet d’aujourd’hui tend à créer un parallèle sur l’environnement Azure. Et, finalement, ce n’est pas si simple que cela de reproduire des tests à l‘identique. Le modèle Amazon est sérieusement amélioré par la présence du bucket d’IOs disponible en mode burst. Normalement, un disque standard GP2 a une capacité de 3 IOPS/GB. Mais en ajoutant l’effet burst IO disponible pour des volumes inférieurs à 1 TB, on dispose pour une période donnée de 3000 IOPS, quelle que soit la volumétrie du disque. Intéressant lorsque l’on maitrise son workload et que celui ci ne consomme pas 100% du temps ces 3000 IOPS. Cela permet de faire de sérieuses économies sur le stockage pour un compromis performance tout a fait acceptable.

Qu’en est-il chez Microsoft, sur la plateforme Azure ?

3 types de volumes SSD  sont disponibles : les disques standard, premium, et en encore en test les disques ultra SSD.

Note : tous les tests ont été effectués sans cache lecture ou écriture.

Les disques standard SSD managés proposent déférents volumétries. Certes vous pouvez au moment de la création du volume opter pour une volumétrie adaptée à vos besoins, MAIS gardez à l’esprit que le prix n’est pas vraiment proportionnel à la volumétrie. Par exemple, si vous créez un volume de 1100 GB, vous serez facturé  au tarif du 2TB. Il en est de même pour les autres types de volumes SSD.

image

Hum, jusqu’à 500 IOPS là ou un AWS GP2 sons burst IO est à 384 IOPS.

image

OK, contrat respecté. On plafonne clairement aux 500 IOPS promis. Mais rien ne garantit ce niveau de performance dans le temps, car les IOs ne sont pas provisionnés. Par contre la latence pique un peu les yeux. Incompatible avec du workload SQL Server. AWS faisait mieux de ce côté là.

Si l’on strippe les volumes (RAID0 dans mon cas car je n’ai pas la nécessité d’avoir de la redondance), le test de performance est sans surprise :
image

Mais la latence est clairement meilleure. Je ne vais pas encore sauter au plafond vu la latence, mais c’est mieux et les 2 000 IOPS peuvent convenir à bon nombre de charge de travail SQL.

Est-ce que la passage du des volumes SSD premium permet un réel gain ?

image

Pour être totalement honnête, j’avoue que les volumes P4 et P6 m’ont réellement déçu. 120 et 240 IOPS théoriques. Pas mieux sur le papier, sans parler de la latence.

image

J’avoue ne pas comprendre l’intérêt de ces volumes. A proscrire donc en production. Passons.

Le test d’un p10 est encore une fois sans surprise :
image

On a dit 500 mon bon monsieur. Pas trop de rabe. Moins que les disque standard finalement !!! Bon OK, on me propose des IOs provisionnés, mais alors pourquoi une telle latence ! Impossible de travailler avec un sous système disque aussi lent.

image

Dès que l’on strippe les volumes, la latence diminue également. Mais si l’on est OK pour upgrader vers un P40 (2TB et 285$ / mois) on a des IOs et peu de latence.

image

Mais encore une fois pourquoi une telle volumétrie. Un disque IO1 AWS provisionné à 7500 IOPS a une taille de 150 GB. Et si je strippais 3 volumes de 650 GB, proche des 2TB Azure, le calcul théorique monte à 97500 IOPS, en admettant que l’on ne soit pas limité par la VM.

Car oui, il faut aussi tenir compte de ce facteur. Certaines VMs sont limitées en nombre d’IOPS. la VM DS13_V2 que j’ai utilisée est théoriquement limitée à 25 000 IOPS. Pourtant, en agrégeant 4 volumes P40 je devrais être bloqué par cette limite.

image

De manière surprenante on dépasse ce plafond ! Et faible latence, enfin     Sourire 

Mais si je change la taille de la VM pour utiliser une DS14_V2, les IOPS sont encore plus élevés, comme quoi la VM a aussi son importance:

image

Notez que pour des IOs en 256 Kb, on double le nombre d’IOs en divisant par 2 la latence …

Difficile d’établir un comparatif entre Azure et AWS d’un point de vue prix pour une volumétrie donnée. AWS est plus souple quand à la taille des volumes.

Disques, avec IOPS provisionnés :

AWS Azure
1 x io1 de 200 GB

  • 10 000 IOPS réels
  • 320 MB de bande passante
  • 747 US$ par mois

 

Mais

3 x io1 de 650 GB

  • ~ 97 000 IOPS réels
  • 960MB de bande passante théorique !
  • 6 200 US$ par mois !!!!
1 x P15 de 256 GB

  • ~ 1 100 IOPS réels
  • 125 MB de bande passante
  • 42 US$ par mois

ou bien pour comparer en IOPS :

2 x P30 –> 2 TB

  • ~ 10 000 IOPS réels
  • 400 MB de bande passante
  • ~300 US$ par mois

Autant dire que Microsoft pousse à la “surconsommation’’ en terme d’espace disque. Pour autant cela semble revenir moins cher, a moins d’une erreur de ma part.

Quid des disques SSD sans IOPS provisionnés, sachant que je ne peux pas faire d’équivalent en terme de volumétrie, encore une fois :

AWS Azure
1 EBS GP2 de 200 GB

  • 3 000 IOPS avec Burst IO
  • 600 IOPS sans Burst IO
  • 150 MB de bande passante
  • 20 US$ par mois

ou bien

4 EBS GP2 de 50 GB

  • 12 000 IOPS avec Burst IO
  • 600 IOPS sans Burst IO
  • 4 x 128 MB de bande passante
  • 22 US$ par mois
1 x E15 de 256 GB

  • ~ 500 IOPS réels
  • 60 MB de bande passante
  • 20 US$ par mois

ou bien :

2 x E10 –> 256 GB 

  • ~ 1 000 IOPS réels
  • 120 MB de bande passante
  • ~20 US$ par mois

ou encore pour reprendre la formule RAID avec 4 volumes :

4 x E10 –> 512 GB 

  • ~ 2 000 IOPS réels
  • 240 MB de bande passante
  • ~40 US$ par mois

Encore une fois, bien difficile de sortir une conclusion sur les disques. Sans effet Burst IO de AWS, on peut considérer que les performances et le tarif sont proches, une centaine d’IOPS de différence. La bande passant opte en faveur de AWS.

Pour ma part, je trouve l’effet burst IO vraiment bluffant. Du coup les performances de la VM en sont très grandement améliorées, pour un tarif vraiment très très raisonnable. Hors cout de VM, au final je trouve l’offre AWS plus intéressante au niveau des disques pour du IaaS même si je dois reconnaitre que les volumes SSD premium Azure me semblent plus attractifs que leurs équivalents AWS.

Et c’est sans compter avec les volumes Ultra SSD qui pointent le bout de leur nez sur le cloud Microsoft. Certes il faudra la VM qui sera capable de les supporter mais un disque de 256GB pouvant monter a 76 800 IOPS, on touche au rêve de tout DBA (voire toute admin système).

image

Probablement un test à venir … Sourire

J’ai beau chercher un moyen pragmatique de comparer les offre, je n’y arrive pas. Tant qu’ l’un calcule le prix et les IOPS sur le volume effectif (AWS) et l’autre se cantonne à des prix par tiers de performance avec volumétrie induite (Azure), je ne suis pas sur que cela soit possible.

Je vous laisse vous faire votre propre idée.

Mais je rêve tout de même du jours où l’on bénéficiera sur Azure d’un effet Burst IO à la mode AWS. Cela rééquilibrera ce test, qui pour ma part tourne à l’avantage de Amazon AWS.

Happy IOPS on Azure !

Publicités

A propos Christophe

Consultant SQL Server Formateur certifié Microsoft MVP SQL Server MCM SQL Server 2008
Cet article, publié dans Windows Azure, est tagué , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s