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

Exécution de SQL Server 2014 sur une machine virtuelle Azure

Microsoft facilite de plus en plus l'exécution de SQL Server 2014 sur une machine virtuelle Azure dans l'un des dix-sept centres de données Azure de Microsoft. Vous pouvez exécuter une machine virtuelle préconfigurée avec une instance SQL Server 2014 préconfigurée à partir de la galerie Azure sur votre choix de machine virtuelle Azure de n'importe quelle taille. L'un des choix de la galerie est "SQL Server 2014 Enterprise optimisé pour les charges de travail transactionnelles" exécuté sur Windows Server 2012 R2. Une bonne chose à propos de l'utilisation d'une image de galerie préconfigurée est que vous n'avez pas à payer pour les licences SQL Server 2014. Vous payez simplement le coût horaire pour l'édition de SQL Server et la taille de la machine virtuelle que vous choisissez.

Options de configuration de SQL Server 2014

Microsoft explique que "Cette image Enterprise Edition est optimisée pour les charges de travail OLTP et est destinée aux tailles de machines virtuelles telles que A4, A7, A8 et A9. Une fois déployée, la machine virtuelle est livrée avec des espaces de stockage Windows préconfigurés." Microsoft effectue également des travaux de configuration au niveau de l'instance sur SQL Server 2014, bien qu'ils ne vont pas assez loin avec ce que je considérerais comme les meilleures pratiques standard.

Ils créent huit fichiers de données tempdb d'une taille de 25 600 Mo, avec un incrément de croissance automatique de 1 024 Mo, ce qui est un bon choix par défaut. Ils activent également TF1117 et TF1118 en tant qu'indicateurs de trace de démarrage, qui sont également de bons choix pour SQL Server. Enfin, Microsoft permet également l'initialisation instantanée des fichiers et le verrouillage des pages en mémoire dans le système d'exploitation, ce avec quoi je suis également d'accord.

Je préférerais que Microsoft apporte également quelques modifications à ces options de configuration au niveau de l'instance :

  1. compression de sauvegarde par défaut
  2. seuil de coût pour le parallélisme
  3. degré maximal de parallélisme
  4. Mémoire maximale du serveur (Mo)
  5. optimiser pour les charges de travail ad hoc

La compression de sauvegarde doit être activée par défaut dans la plupart des cas. Le seuil de coût pour le parallélisme doit souvent être augmenté à une valeur supérieure à la valeur par défaut de 5, en fonction de votre charge de travail. Le degré maximal de parallélisme doit généralement être remplacé par une valeur autre que la valeur par défaut basée sur le nombre de cœurs dans un nœud NUMA. Ce paramètre dépend également de votre charge de travail. La mémoire maximale du serveur doit être définie sur une valeur autre que celle par défaut en fonction de la quantité de RAM dans la machine virtuelle et de ce que vous exécutez (en plus du moteur de base de données SQL Server) sur la machine virtuelle. Enfin, je pense que l'optimisation pour les charges de travail ad hoc doit être activée, à peu près dans tous les cas.

À la décharge de Microsoft, il serait difficile de faire un choix de configuration satisfaisant pour certains de ces éléments sans connaître (à l'avance) les détails de la taille de votre machine virtuelle et la charge de travail attendue du serveur de base de données. Cela vous laisse la tâche, tout comme avec une instance SQL Server sur site.

Dimensionnement de la machine virtuelle Azure

Même si vous pouvez choisir entre une machine A0 Basic et une machine A9 Standard, Microsoft vous recommande de choisir une machine virtuelle de taille A4 Standard, A7 Standard, A8 Standard ou A9 Standard pour une utilisation en production. Les détails de tarification des machines virtuelles SQL Server sont répertoriés ici.

En regardant les spécifications comparatives de ces recommandations dans le tableau 1, il est difficile de comprendre pourquoi vous voudriez choisir une machine A4 Standard, car elle coûte le même montant par heure que les plus grandes machines A7 ou A8 Standard. En regardant la documentation en ligne, il n'est pas très clair au départ quelle est la différence réelle entre une machine A7 et une machine standard A8. En creusant un peu plus, la machine A8 Standard est considérée comme une instance de calcul intensif, qui est censée utiliser un processeur Intel Xeon E5-2670 plus rapide à 2,6 GHz, ainsi que deux adaptateurs réseau (un 10 Gbps et un 32 Gbps compatible RDMA).

La machine virtuelle A7 Standard utilise un processeur Intel Xeon E5-2660 2,2 GHz un peu plus lent, tandis que la connectivité réseau semble être Ethernet 1 Gbps standard. Bien que cela ressemble à une différence significative dans les performances du processeur et du réseau, ce n'est pas vraiment le principal problème avec les machines virtuelles de la série A pour l'utilisation de SQL Server.

Taille de la machine virtuelle Taux standard SQL Tarif Entreprise SQL Nombre de cœurs Quantité de RAM
Format A4  0,80 $/h  3,00 $/h 8 14 Go
Norme A7  0,80 $/h  3,00 $/h 8 56 Go
Norme A8  0,80 $/h  3,00 $/h 8 56 Go
Norme A9  1,60 $/h 6,00 $/h 16 112 Go

Tableau 1 :Informations sur la machine virtuelle SQL Server A-Series

Le principal problème avec toutes les machines virtuelles de la série A est la performance assez misérable du sous-système d'E / S, même si Microsoft a préconfiguré le sous-système de disque avec des espaces de stockage Windows pour obtenir les meilleures performances possibles compte tenu des limitations de performances inhérentes à l'A- machines virtuelles et hôtes de série. La figure 1 montre les résultats CrystalDiskMark pour le lecteur E:d'une machine A4 Standard du centre de données Azure East US, qui est destiné aux fichiers journaux des transactions.

Figure 1 :Résultats CrystalDiskMark standard A4

Une bien meilleure alternative pour SQL Server sont les machines virtuelles de la série D. Ces machines virtuelles coûtent le même prix par heure que les machines virtuelles de taille comparable de la série A, et elles disposent d'un stockage SSD local qui ne doit être utilisé que pour les fichiers tempdb et/ou pour les extensions de pool de mémoire tampon (BPE), car elles ne sont pas persistantes. Certaines spécifications pertinentes pour les machines virtuelles de la série D sont présentées dans le tableau 2.

Taille de la machine virtuelle Taux standard SQL Tarif Entreprise SQL Nombre de cœurs Quantité de RAM
Norme D4  0,80 $/h  3,00 $/h 8 28 Go
Norme D13  0,80 $/h  3,00 $/h 8 56 Go
Norme D14  1,60 $/h 6,00 $/h 16 112 Go

Tableau 2 :Informations sur la machine virtuelle SQL Server D-Series

La machine D4 Standard coûte le même prix qu'une machine A4 Standard, mais elle dispose de deux fois plus de RAM et d'un stockage SSD local. La machine D13 Standard coûte le même prix qu'une machine A7 ou A8 Standard, mais avec l'avantage du stockage SDD local. La machine D14 Standard coûte le même prix qu'une machine A9 Standard, mais bénéficie également d'un stockage SSD local. Compte tenu de ces informations, il est peu logique d'utiliser une machine virtuelle de série A pour SQL Server.

Malheureusement, les lecteurs permanents de vos fichiers de données et journaux SQL Server ont également des performances d'E/S assez inférieures aux normes dans CrystalDiskMark, comme le montrent les figures 2 et 3.

Figure 2 : D14 Résultats CrystalDiskMark standard Figure 3 : D14 Résultats CrystalDiskMark standard

Les performances du SSD local sont liées à la taille de la machine virtuelle Azure, les grandes tailles obtenant de meilleures performances du SSD local. Les résultats de performances de CrystalDiskMark pour une machine standard D14 dans le centre de données Azure de l'est des États-Unis sont illustrés à la figure 4.

Figure 4 :Résultats CrystalDiskMark standard D14 pour le stockage SSD local

Le lecteur F:(pour les fichiers de données SQL Server) a des résultats légèrement meilleurs que le lecteur E:, mais les deux lecteurs ont un niveau de performances très faible pour SQL Server.

Conclusion

Il semble assez clair que les machines de la série D conviennent mieux à l'utilisation de SQL Server que les machines de la série A. Il est également logique de porter une attention particulière au dimensionnement et au prix de la machine virtuelle que vous décidez de provisionner pour SQL Server, car vous pouvez obtenir plus de RAM au même coût horaire. Les deux meilleurs choix du point de vue des performances sont les machines virtuelles D13 ou D14 Standard.

Les instances préconfigurées de SQL Server 2014 de la galerie Azure peuvent vous faire économiser beaucoup d'argent en frais de licence SQL Server, et une grande partie du travail de configuration nécessaire est déjà terminée dans l'image de base. Vous devez toujours entrer et apporter quelques modifications finales à la configuration en fonction de vos préférences et de votre charge de travail. Enfin, vous devez prendre le temps d'exécuter des tests de performances sur votre machine virtuelle afin de comprendre le niveau de performances qu'elle peut offrir.