Database
 sql >> Base de données >  >> RDS >> Database

Comparaison des performances des machines virtuelles Windows Azure, partie 1

À moins que vous n'ayez fait un effort concerté pour l'ignorer, vous avez peut-être entendu dire que Microsoft allait vraiment comme pour vous de déplacer une grande partie de votre infrastructure de base de données SQL Server dans un centre de données Microsoft, que vous alliez vers une base de données SQL Azure (dont j'ai récemment parlé ici), ou que vous l'hébergiez sur une machine virtuelle Windows Azure. Microsoft appelle ces machines virtuelles persistantes instances de calcul , et ils ont le choix entre deux niveaux principaux, qui incluent le niveau de calcul de base et le niveau de calcul standard. Ils décrivent ces deux niveaux comme :

Niveau de calcul de base  :Ce nouveau niveau d'instances de calcul est similaire dans sa configuration au niveau Standard avec des prix inférieurs. Ces instances n'incluent pas l'équilibreur de charge et la mise à l'échelle automatique. Ils conviennent parfaitement aux applications de production à instance unique, aux charges de travail de développement, aux serveurs de test et aux applications de traitement par lots qui pourraient ne pas nécessiter ces fonctionnalités. Le niveau de calcul de base est actuellement disponible uniquement pour les instances à usage général. Ces instances vont de Basic A0 à Basic A4.

Niveau de calcul standard :Ce niveau d'instances de calcul fournit un ensemble optimal de ressources de calcul, de mémoire et d'E/S pour exécuter un large éventail d'applications. Ces instances incluent à la fois des fonctionnalités de mise à l'échelle automatique et d'équilibrage de charge sans frais supplémentaires. Le niveau de calcul standard est disponible dans les instances à usage général, à mémoire intensive et à calcul intensif. Ces instances vont de la norme A0 à la norme A7.

L'hébergement de votre infrastructure SQL Server sur une machine virtuelle Windows Azure présente plusieurs avantages importants. Tout d'abord, vous n'avez aucun coût d'investissement pour le stockage ou le matériel, ainsi qu'aucune maintenance continue du stockage ou du matériel. Deuxièmement, vous n'avez aucun coût de licence de système d'exploitation ou de serveur SQL (lorsque vous utilisez une image SQL de la galerie de machines virtuelles Azure standard). Troisièmement, vous pouvez créer une nouvelle machine virtuelle Azure sur laquelle SQL Server est déjà installé en quelques minutes (même si la configuration complète du système d'exploitation et de l'instance SQL Server selon vos besoins peut prendre un peu plus de temps). À l'avenir, il vous appartiendra toujours d'installer les mises à jour Windows et SQL Server, mais vous n'aurez pas à vous soucier de choses comme les mises à jour du micrologiciel, du BIOS ou des pilotes.

Si vous souhaitez utiliser des machines virtuelles Windows Azure pour héberger tout ou partie de votre infrastructure SQL Server, vous devez connaître les détails de tarification actuels disponibles pour le centre de données Azure spécifique dans lequel vous souhaitez héberger vos machines virtuelles, car les prix peuvent varient selon les différents centres de données Microsoft. Microsoft dispose actuellement de 13 tailles de machines virtuelles Windows Azure différentes, comme détaillé dans leur page Tailles des machines virtuelles et des services cloud pour Azure. Microsoft a réduit le tarif horaire des instances gourmandes en mémoire (Standard A5, Standard A6 et Standard A7) de 18 % dans la plupart de ses centres de données le 1er mai 2014, et le tarif indiqué dans le tableau 1 reflète ces nouveaux prix plus bas.

Le score monocœur et le score multicœur dans les deux colonnes de droite du tableau 1 sont les scores moyens que j'ai observés à l'aide de la version 32 bits du processeur Geekbench 3.05 et de la référence de mémoire sur un exemple de centre de données Windows Server 2012 R2. VM dans le centre de données de l'est des États-Unis. Ces scores peuvent ou non être représentatifs de ce que vous verrez.

Taille de la machine virtuelle Cœurs de processeur Mémoire (Go) Coût horaire Coût mensuel Score monocœur Score multicœur
A0 de base 1 (partagé) 0.75 0,018 $ ~$14 507 498
A1 de base 1 1.75 0,074 $ ~$56 679 670
A2 de base 2 3.50 0,148 USD ~$111 709 1 358
A3 de base 4 7.00 0,296 $ ~$221 717 2 472
A4 de base 8 14.00 0,592 USD ~$441 724 4 042
Norme A0 1 (partagé) 0.75 0,020 $ ~15 $ 492 502
Norme A1 1 1.75 0,090 $ ~$67 1 068 1 083
Norme A2 2 3.50 0,180 $ ~$134 1 069 2 002
Norme A3 4 7.00 0,360 $ ~$268 1 070 3 593
A4 standard 8 14.00 0,720 USD ~$536 1 094 6 446
Norme A5 2 14.00 0,330 $ ~$246 1 080 2 026
Norme A6 4 28.00 0,660 USD ~$492 1 080 3 686
Norme A7 8 56.00 1 320 $ ~ 983 $ 1 056 6 185

Tableau 1 :Spécifications de machines virtuelles sélectionnées pour Windows Azure dans le centre de données de l'est des États-Unis

Actuellement, Microsoft dispose de neuf centres de données pouvant héberger de nouvelles machines virtuelles persistantes, notamment l'est des États-Unis, l'ouest des États-Unis, le sud du Brésil (aperçu), l'Europe du Nord, l'Europe de l'Ouest, l'Asie de l'Est, l'Asie du Sud-Est, le Japon Ouest et le Japon Est. Selon Microsoft, "A1 est la plus petite taille recommandée pour les charges de travail de production" et vous devez sélectionner "une machine virtuelle avec 4 ou 8 cœurs de processeur lors de l'utilisation de SQL Server Enterprise Edition". Une référence utile, bien qu'un peu datée, pour l'exécution de SQL Server sur une machine virtuelle Windows Azure est le Performance Guidance for SQL Server in Windows Azure Virtual Machines qui a été publié en juin 2013.

Caractéristiques de la machine virtuelle Windows Azure

Lorsque vous examinez les propriétés du processeur dans l'onglet Performances du Gestionnaire des tâches de Windows Server 2012 R2 (dans la figure 1 et la figure 2), vous remarquerez qu'il signale qu'il utilise un processeur AMD Opteron 4171 HE 45 nm relativement ancien, fonctionnant à une vitesse de 2,1 GHz. Ce processeur particulier à six cœurs a été introduit en juin 2010, dans le cadre de la famille Lisbon à deux sockets. Le suffixe HE signifie qu'il s'agit d'un modèle économe en énergie "à faible consommation" qui n'est pas un bon choix pour l'utilisation de SQL Server, car il renonce à une quantité importante de performances pour une consommation d'énergie réduite relativement faible. Après avoir fait quelques recherches, on m'a dit que ce processeur est un processeur OEM spécial pour les centres de données Microsoft.


Figure 1 :Machine virtuelle A0 de base dans les données de l'est des États-Unis Centre


Figure 2 :Machine virtuelle A7 standard dans les données de l'est des États-Unis Centre

L'autre gros problème avec ce processeur, outre son âge et ses performances monothread relativement médiocres, est le fait qu'il n'a que six cœurs physiques. Il s'agit d'un problème avec les tailles de machine virtuelle Basic A4, Standard A4 et Standard A7, qui ont deux nœuds NUMA et huit cœurs physiques au total. Cela signifierait qu'une machine virtuelle de cette taille traverserait un nœud NUMA sur l'hôte physique sous-jacent, ce qui n'est pas une bonne idée pour les performances de la mémoire. J'ai du mal à croire que Microsoft ferait cela exprès. J'ai également du mal à croire que chaque machine virtuelle Azure dans chaque centre de données que j'ai essayé jusqu'à présent utilise exactement le même processeur AMD ancien. Il est de notoriété publique que Microsoft dispose d'au moins trois générations différentes de matériel (Gen 1, Gen 2 et Gen 3) qu'ils ont utilisées jusqu'à présent dans leurs centres de données Azure, offrant des performances de machine virtuelle différentes. Après quelques recherches supplémentaires, j'ai découvert que ce processeur AMD Opteron 4171 HE est un processeur Azure Gen 2.

Vous pouvez parcourir la base de données en ligne Geekbench 3 des résultats de référence téléchargés, en recherchant des systèmes utilisant le processeur AMD Opteron 4171 HE ici. Vous remarquerez peut-être que chaque résultat pour ce processeur semble être pour une machine virtuelle Microsoft, ce qui est également assez curieux. Le gestionnaire de tâches de Windows Server 2012 R2 signale le cache L1 comme "N/A" et ne répertorie même pas les tailles de cache L2 et L3 sur ces machines virtuelles Azure. Un autre élément de preuve curieux est le fait que les instances standard ont des scores Geekbench 3 environ 50 % plus élevés que les instances de base équivalentes lorsqu'elles ont exactement le même nombre total de cœurs de processeur et de tailles de mémoire, à la fois pour le score monocœur et multicœur. score. Cette grande différence n'a aucun sens si la machine hôte sous-jacente utilise réellement le même processeur.

Résumé

Toutes ces preuves m'ont d'abord amené à la conclusion que Microsoft masquait probablement le processeur réel de la machine hôte. J'ai pensé qu'ils pourraient le faire pour essayer d'empêcher les gens de provisionner délibérément plusieurs VM jusqu'à ce qu'ils obtiennent qu'une VM s'exécute sur un matériel hôte plus récent et plus rapide. Il s'avère que Microsoft n'est pas si intelligent. On m'a assuré que Microsoft ne modifie pas l'identité du processeur dans une machine virtuelle Azure. Il existe des processeurs Azure Gen 3 plus récents que vous pouvez obtenir dans une machine virtuelle Azure, à mesure que vous provisionnerez de nouvelles machines virtuelles à l'avenir. Une autre raison possible de mes résultats est qu'ils utilisent probablement une sorte de gouvernance pour limiter les performances des machines virtuelles à un niveau fiable et uniforme, quel que soit le matériel hôte sous-jacent, afin qu'ils puissent héberger plus de machines virtuelles sur moins de matériel au fil du temps. Ce serait une ligne de conduite intelligente pour un hébergeur IaaS.

Les scores Geekbench 3.05 relativement faibles (voir Figure 3) même pour les plus grandes machines virtuelles Azure signifient que vous renoncez à une quantité importante de performances de processeur et de mémoire par rapport à un serveur physique à deux sockets équivalent avec le même nombre de cœurs de processeur et de mémoire.


Figure 3 :32 bits Geekbench 3.05 Résultats pour Standard Machine virtuelle A4 dans le centre de données de l'est des États-Unis

De nombreuses charges de travail SQL Server fonctionneront parfaitement avec ce niveau de performances de machine virtuelle, bien qu'un peu plus lentement que ce à quoi vous êtes habitué. Si vous tenez compte des économies de licence SQL Server 2014 Enterprise Edition d'une machine à huit cœurs, plus les dépenses d'investissement pour un modeste serveur à deux sockets et son stockage associé, vous pourriez vous permettre d'exécuter une machine virtuelle Standard A7 24 × 7 pendant environ cinq à six ans. Compte tenu de ce type de retour sur investissement, je peux voir de nombreuses organisations prendre la décision économique de déplacer au moins une partie de leur infrastructure SQL Server vers des machines virtuelles Azure. Tant que votre charge de travail peut s'exécuter sur une machine virtuelle de 56 Go ou moins, et tant que les performances du processeur et de la mémoire sont inférieures à celles d'un ordinateur portable vintage récent typique, il s'agit d'une ligne de conduite rationnelle. Microsoft a récemment annoncé la disponibilité d'instances intensives de calcul A8 et A9 VM plus grandes et beaucoup plus rapides, qui utilisent des processeurs Intel Xeon E5-2670. Ce sera une énorme amélioration des performances par rapport aux processeurs Azure Gen 2.

J'examinerai les performances d'E/S dans les machines virtuelles Azure dans un prochain article.