Retour au blog

Benchmarking des serveurs cloud : le guide de l’initié du cloud computing

Benchmarking des serveurs cloud : le guide de l’initié du cloud computing

De nombreux nouveaux clients, lorsqu’ils commencent à utiliser CloudSigma, souhaitent tester les performances ; ils cherchent souvent à comparer les résultats de performance entre les serveurs cloud et leur propre infrastructure, et cela est logique. Une simple comparaison de prix par ressource ne raconte pas du tout toute l’histoire ; ce qui importe vraiment, c’est le résultat final : combien coûte la réalisation d’une tâche informatique spécifique ?

Pour toute exigence donnée, le nombre de ressources nécessaires pour y parvenir peut varier considérablement d’un cloud à l’autre. Cela signifie que comparer uniquement les prix ne fonctionne pas. Le revers de la médaille est que comparer les performances de manière isolée n’est pas mieux. Des comparaisons significatives doivent associer à la fois le prix et les performances pour calculer une mesure du coût par unité informatique. Dans cet article, je vais partager quelques-unes de mes réflexions issues du benchmarking de nos serveurs cloud et d’autres. Je fournirai également quelques conseils pour obtenir des résultats utiles et ce qu’ils signifient réellement.

Mises en garde

Pour expliquer d’emblée, je suis assez sceptique à l’égard du benchmarking en général. Il offre rarement un véritable aperçu de l’utilisation en conditions réelles. En bref, rien ne remplace l’exécution des applications réelles que vous prévoyez d’utiliser sur la plateforme. Si vous pouvez y parvenir à un coût raisonnable en termes de temps, alors rien ne remplace un tel exercice.

Un autre facteur est le niveau d'activité du fournisseur de cloud. Vous pouvez évaluer les performances des serveurs cloud et obtenir d'excellents résultats. Cependant, ceux-ci peuvent être largement dus au niveau d'utilisation (ou à l'absence d'utilisation) de ce fournisseur particulier. Cela n'est peut-être pas un signe positif. Cela pourrait refléter des difficultés de fonctionnement, des pertes de clients, des problèmes passés de disponibilité et de fiabilité, etc. Par conséquent, vous devriez toujours faire des recherches sur le fournisseur de cloud concernant les pannes passées et d'autres problèmes potentiels lors de l'interprétation de ses résultats de benchmark.

En guise de dernier avertissement, la performance n’est pas le seul facteur que vous devriez prendre en compte. Souvent, une performance inférieure peut refléter une architecture matérielle sous-jacente plus robuste (et redondante). Il est donc toujours important d’avoir une compréhension très claire de l’infrastructure sur laquelle le cloud est construit. Ainsi, vous pouvez comparer les résultats de manière équitable, vous permettant ainsi de prendre une décision d’achat éclairée.

Définir le problème

Plus loin dans cet article, je présente les différents aspects de la performance et la meilleure manière d'interpréter les résultats. Avant de procéder à toute analyse comparative, il est toutefois important de caractériser le type d'informatique que vous envisagez d'entreprendre dans le cloud ; cela déterminera l'importance relative des différentes mesures de performance. Par exemple, si vous cherchez à héberger un serveur de base de données qui sera soumis à un accès intensif en lecture mais faible en écriture, vous devez prêter attention aux performances du disque dans le cloud, et en particulier à l'accès en lecture non séquentiel.

Ainsi, avant de commencer toute évaluation comparative de serveurs cloud, définissez concrètement ce que vous considéreriez comme une bonne performance de la part du cloud. Vous devez déterminer quels aspects sont essentiels et ont un impact disproportionné sur les performances réelles de votre informatique. Une fois que vous en avez une idée claire, vous êtes alors en mesure de commencer à vous intéresser à l'évaluation comparative.

Performances de calcul

Lorsque nous examinons les performances de calcul brutes, nous parlons de CPU et de RAM. Les différences de performances à un niveau de calcul pur entre les clouds ne sont en réalité pas si importantes. Cependant, certains facteurs sont à l'origine des véritables différences.

De loin, le facteur le plus important affectant les performances de calcul dans le cloud est la contention. Les clouds publics sont des environnements multi-locataires. La RAM et le stockage ne peuvent pas être réellement sur-alloués (bien qu'ils puissent être sur-vendus), mais le CPU peut l'être et l'est. Les niveaux de contention varient considérablement, mais, fondamentalement, les fournisseurs de cloud public sont en mesure de vendre la capacité CPU d'un hôte physique à plus de 100 %.

Certains des plus grands fournisseurs utilisent des ratios de contention CPU de plus de trois fois. Cela signifie que la capacité CPU totale ‘vendue’ de tous les serveurs virtuels sur la même machine physique peut être de trois fois sa capacité CPU réelle. Ils font cela parce que la plupart des serveurs virtuels n’utilisent pas du tout 100 % de leur allocation CPU la majeure partie du temps. Néanmoins, les ratios de contention affecteront directement les benchmarks de performance des serveurs cloud et l'utilisation réelle. Si la contention est élevée (c.-à-d. à plus de 200 % d'allocation CPU), les performances du serveur cloud se détérioreront considérablement.

Pour faire simple, si la charge sur n'importe quelle machine physique dépasse 1 par cœur, les tâches de calcul sont mises en file d'attente et le temps nécessaire à cette machine virtuelle pour terminer le travail sera plus long. Étant donné que la plupart des clouds facturent sur une base de capacité/heure, cela a un impact direct sur les coûts pour les clients de ce cloud.

L’autre facteur important affectant les performances de calcul est le nombre de cœurs de processeur auxquels la machine virtuelle a accès. Ce n’est pas un facteur pour toutes les applications, mais de nombreuses applications modernes prennent en charge le multi-threading. Concrètement, cela signifie que l’application et/ou le système d’exploitation est capable de répartir les tâches de calcul sur plusieurs cœurs. Une excellente astuce pour améliorer les performances de vos calculs consiste à faire correspondre le nombre de threads (c.-à-d. de cœurs) qu’une application peut prendre en charge avec le nombre de cœurs auxquels la machine virtuelle a accès.

Malheureusement, ce n’est pas possible avec de nombreux clouds publics. Cela s’explique par le fait que leurs plateformes de virtualisation ne prennent pas en charge la virtualisation au niveau des cœurs CPU. En d’autres termes, chaque cœur ne peut être utilisé que par une seule machine virtuelle à la fois. Dans les clouds qui prennent en charge la virtualisation des cœurs CPU, vous devriez essayer de faire varier le nombre de cœurs pour cette machine tout en conservant la même taille totale de CPU.

Par exemple, si vous avez une machine de 2GHz, vous pouvez voir comment le fait de doubler les cœurs utilisés de deux à quatre affecte votre benchmarking. Ce faisant, les applications s'exécutant sur cette machine virtuelle pourront exécuter des tâches via quatre cœurs simultanément. Dans notre cas, vous pouvez définir le nombre de cœurs utilisés par une machine virtuelle via l'onglet ‘avancé’ de la fenêtre modale des détails du serveur de la console web. N'oubliez pas de toujours vérifier quelle est la taille de cœur standard du fournisseur de cloud avant de remplacer manuellement le nombre de cœurs utilisés. Dans notre cas, elle est de 2.2GHz par cœur, mais cela varie d'un cloud à l'autre.

Je recommanderais d’utiliser d’envisager d’utiliser POV-RAY, CoreMark, Dhrystone ou Whetstone pour évaluer les performances des serveurs cloud.

Stockage : le véritable benchmark des performances des serveurs cloud

Toute performance est limitée par le maillon le plus faible où se forme un goulot d’étranglement. Actuellement, la technologie a considérablement progressé dans le domaine de la virtualisation en ce qui concerne l’utilisation du CPU et de la RAM. Par exemple, une seule machine physique peut être virtualisée et avoir plusieurs serveurs cloud avec une perte minimale de performance globale totale. Malheureusement, dans le cas du stockage, il reste encore beaucoup de progrès à faire. Le résultat final est que, dans la plupart des cas, la performance des serveurs virtuels dans le cloud est déterminée par la performance de la solution de stockage de ce cloud.

En résumé, le stockage est actuellement le facteur limitant des performances de la plupart des tâches de calcul dans le cloud. Quels que soient les résultats que  pov-ray et d'autres benchmarks peuvent produire pour des tâches de calcul pur, la réalité est que la vitesse à laquelle le serveur virtuel peut récupérer et écrire des données sur des disques de stockage physiques déterminera les performances réelles d'un serveur cloud à l'heure actuelle.

Dans cette optique, les véritables différences de performances constatées dans le cloud, même en ce qui concerne les tâches informatiques, ont tendance à découler des différences de performances de stockage. Comme mentionné plus haut dans cet article, les besoins des clients sont très différents selon la tâche informatique. Cela n'a jamais été aussi vrai qu'en ce qui concerne le stockage. Avez-vous besoin d'un accès rapide en lecture à de grands blocs séquentiels de données (comme le streaming multimédia) ou à de petits éléments d'information disparates (peut-être dans une grande base de données) ? Devez-vous maintenir un accès intensif en écriture pour des données qui changent rapidement et qui sont consultées périodiquement par de fortes rafales ? Il existe de nombreux scénarios et chacun offrira des performances différentes sur une même plateforme.

Fondamentalement, les différences de performances se résument à l'architecture. Ces différences d'architecture résultent généralement de différents degrés de robustesse en ce qui concerne le stockage des données, leur redondance et donc, en réalité, de la probabilité qu'elles soient un jour définitivement perdues. À haut niveau, les clouds utilisent soit des solutions de données centralisées sous la forme d'un réseau de stockage (SAN) ou de solutions de stockage local plus distribuées. Dans celles-ci, le stockage est situé sur chaque machine physique individuelle.

Les bons SAN ont intrinsèquement un niveau élevé de redondance intégré. Cependant, les performances en pâtissent car les données doivent être envoyées du SAN à travers le réseau vers le processeur et la RAM de la machine virtuelle pour les tâches de calcul. Par conséquent, les clouds basés sur SAN ont tendance à offrir des performances inférieures, à comparaison égale, par rapport aux clouds dotés de solutions de stockage distribué local. Un autre inconvénient d’un SAN est qu’il représente un point de défaillance unique très important. Les SAN sont extrêmement fiables. S’ils rencontrent un jour un problème grave (et cela s’est déjà produit), vous risquez de faire face à une panne très importante et à une corruption des données.

La plupart des fournisseurs cloud utilisant des SAN n’emploient pas de solutions de basculement entièrement redondantes du type de celles utilisées dans l’environnement d’entreprise, principalement pour des raisons de coût. Il est important de réaliser que chaque SAN n’est pas égal et de comprendre, pour le fournisseur cloud, quel niveau de redondance il emploie avec ses SAN.

Les clouds basés sur le stockage local ont tendance à présenter de bonnes performances de disque. Cependant, ils ne proposent souvent que du stockage local sous une forme non persistante. Ce n’est pas une comparaison équitable avec le stockage persistant. Le stockage temporaire n’a pas besoin d’être aussi robuste aux pannes que le stockage permanent. Il est toujours important de comparer du stockage persistant avec du stockage persistant pour obtenir des résultats significatifs.

Lorsque vous examinez des clouds dotés de solutions de stockage local distribué, vous devez également savoir de quelle redondance ils disposent. Les disques durs tombent en panne à un taux important, c'est pourquoi la méthode de stockage est essentielle. La plupart des fournisseurs utilisent une forme de RAID mais il existe des niveaux de sécurité très différents. Au bas de l'échelle, vous avez le RAID1 où deux disques sont essentiellement le miroir l'un de l'autre. Cela offre généralement de bonnes performances. Mais lorsqu'un disque tombe en panne, jusqu'à ce que le disque de remplacement copie toutes les données de l'ancien disque, les données risquent d'être complètement perdues si le second disque (fortement sollicité) tombe en panne. De plus, lors de toute reconstruction de la grappe RAID1, les performances du disque risquent d'être bien inférieures à la normale.

De nombreux fournisseurs utilisent donc le RAID5 (résistant à la défaillance d'un disque) ou le RAID6 (résistant à la défaillance de deux disques). Le RAID6 offre de loin la solution la plus sûre pour le stockage local, mais impose une baisse importante des performances. Notre approche consiste à utiliser le RAID6 mais à le combiner avec des cartes contrôleurs RAID matérielles haut de gamme. Elles disposent de grandes mémoires caches et sont protégées par batterie. Les cartes contrôleurs RAID que nous utilisons sont en réalité nettement plus chères que l'ensemble des baies de disques. Ainsi, nous pouvons offrir des performances comparables à des configurations beaucoup moins résilientes tout en proposant le très large filet de sécurité du stockage RAID6. En savoir plus sur notre infrastructure cloud configuration sur laquelle nous sommes très ouverts.

Je recommande d'utiliser IOzone ou Bonnie++ pour les tests de performance de disque.

Ainsi, lorsque vous interprétez les résultats des tests de performance de stockage, assurez-vous de disposer également des informations suivantes :

  • quelle architecture de stockage le cloud utilise-t-il (locale, SAN, autre) ?
  • quelles mesures de basculement et de redondance sont en place pour les données ?
  • le stockage que j’évalue est-il temporaire ou persistant ?

Associer les réponses à ces trois questions aux résultats des tests de performance vous donnera un assez bon aperçu des performances réelles du stockage.

Réseau

Les performances réseau sont nettement plus simples à déterminer et à mesurer que les performances de calcul et de disque. Les performances réseau présentent deux aspects clés : la latence et la bande passante.

Selon vos besoins, la latence du réseau utilisé par le fournisseur de cloud peut être importante ou non. Si vous utilisez le cloud pour des opérations largement autonomes, il est peu probable que la latence soit une priorité. Si, en revanche, vous exécutez des applications en temps réel qui interagissent avec le monde extérieur au cloud, la latence sera alors un déterminant de performance critique.

Généralement, la grande majorité de la latence provient d'une simple distance physique. Par exemple, la majeure partie de la latence entre Londres et San Francisco correspond en réalité au temps nécessaire à la lumière pour parcourir cette distance. Les différences de latence sont déterminées par l'efficacité variable de l'itinéraire emprunté. C'est l'aspect qui diffère d'un cloud à l'autre. L'efficacité de l'itinéraire est le résultat direct des fournisseurs de réseau avec lesquels le cloud a des connexions directes. Cela se fait soit en obtenant une connectivité IP auprès d'eux, soit par peering. Lorsque vous examinez les latences, vous pouvez simplement pinger votre serveur cloud et déterminer ses performances. Cependant, il est important de déterminer les performances entre vos utilisateurs finaux réels et votre serveur cloud.

Si la plupart de vos utilisateurs sont basés dans une seule zone géographique ou si l’accès se fera principalement depuis le siège social de votre entreprise, il est important de  tester les performances depuis ces emplacements. Des services commerciaux tels que Pingdom offrent un moyen rentable de déterminer la latence depuis un grand nombre d'emplacements généraux simultanément dans le monde entier.

La bande passante réelle que votre serveur cloud peut atteindre est également très important. Contrairement aux solutions d'hébergement plus traditionnelles, les fournisseurs de cloud ont tendance à facturer en fonction du volume global de transfert de données. En d'autres termes, cela ne dépend pas du temps, comme avec une formule par Mbit qui vous offre un niveau de connectivité fixe 24/7. Malgré cela, de nombreux fournisseurs de cloud vont ‘brider’ la bande passante de n'importe quel serveur virtuel. Cela sera invisible pour l'utilisateur jusqu'à ce que vous atteigniez cette barrière. Si vous avez un profil de bande passante présentant des pics, cela pourrait être un facteur de performance important à prendre en considération.

Pour tester la bande passante réelle de votre serveur cloud, il est important d’essayer de télécharger des données sur le serveur cloud depuis une source qui ne restreint pas réellement le taux de transfert de son côté. Je trouve souvent qu’un excellent moyen de déterminer la vitesse disponible consiste à télécharger un fichier volumineux auprès d’un grand fournisseur tel que MicrosoftUbuntu ou encore mieux en mettant à jour le système d’exploitation. Cela a tendance à télécharger de nombreux fichiers différents à partir de divers emplacements simultanément. Cela vous donnera une assez bonne idée de la vitesse de votre connexion.

Je télécharge souvent un CD live Fedora depuis leur site principal comme test standard, mais vous devriez toujours expérimenter avec au moins quelques fichiers et emplacements différents. Si vous tenez absolument à disposer de votre propre réseau d'entreprise très rapide, vous préférerez peut-être télécharger un fichier depuis votre serveur cloud vers votre propre réseau à titre de test.

Réintégrez maintenant la tarification pour pondérer les résultats

En utilisant les méthodes ci-dessus, vous devriez pouvoir vous faire une bonne idée des performances des différents fournisseurs de serveurs cloud. De plus, vous devriez savoir sur quels aspects vous concentrer en priorité, selon vos besoins particuliers.

La dernière étape consiste à ajouter une dimension tarifaire aux résultats de benchmark. Il n'y a pas de formule pour cela. Cela dépend des performances relatives des différents aspects mentionnés ci-dessus, et c'est vous qui les déterminez. Si un cloud offre des performances supérieures de 40 % (selon vos estimations) mais n'est que 30 % plus cher, il est clair qu'il est attractif. De même, si vous avez d'importants besoins en bande passante, des performances de calcul inférieures peuvent être compensées par un plan tarifaire compétitif pour le transfert de données. La clé pour prendre la bonne décision est de prendre en compte tous ces différents facteurs.

Enfin, l’évaluation comparative devrait faire partie d’un processus plus large visant à déterminer quels serveurs cloud vous conviennent. Cela devrait inclure d’autres aspects. Par exemple, ceux-ci peuvent inclure les accords de niveau de service, les considérations de dépendance vis-à-vis des données/fournisseurs, l’emplacement physique et la juridiction légale. En regroupant tous ces aspects, vous vous positionnerez pour faire le bon choix de fournisseur de cloud computing.

author

Patrick Baillie

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.