Pourquoi mon Azure SQL Server est-il si lent?


10

Nous avons actuellement une machine virtuelle très sous-alimentée et proposons de passer à une machine virtuelle Azure avec de meilleures spécifications. Le problème est que la machine virtuelle Azure est beaucoup plus lente que la machine virtuelle d'origine, même si elle est d'une spécification plus élevée.

Le serveur d'origine est une machine virtuelle à 2 cœurs avec 2 Go de mémoire qui est également un serveur Web. Il est en cours d' exécution Web Edition Microsoft SQL Server 2008 R2 et parce que ce serveur est utilisé pour d' autres choses, nous avons dû limiter la mémoire de serveur maximale dans SQL Server à 512Mo .

Le nouveau serveur est une machine virtuelle 4 cœurs avec 7 Go de mémoire qui n'est qu'un serveur de base de données. Il exécute Microsoft SQL Server Standard Edition 2008 R2 et nous n'avons pas limité la quantité de mémoire que SQL Server peut utiliser.

Il s'agit de l'un des deux serveurs installés dans un environnement en miroir, mais la base de données sur laquelle j'exécute les tests n'est pas en miroir. Les autres bases de données sur ce serveur ne reçoivent pas beaucoup de trafic pour le moment (en fait, le moniteur d'activité ne montre aucune activité sur les autres bases de données pendant que j'exécutais ces tests).

Je me rends compte qu'un problème avec les machines virtuelles Azure est que les disques durs sont une ressource réseau, ce qui serait la source du ralentissement, mais il est toujours plus lent même lorsqu'il n'y a aucune lecture physique indiquée dans les statistiques d'E / S.

J'ai suivi les conseils de réglage sur cette page sur la machine virtuelle Azure, notamment le fractionnement des disques (deux disques par lecteur) et la mise en place du journal et des fichiers de données sur des lecteurs distincts.

Les seules choses que je n'ai pas faites sont d'activer la compression de page, de limiter la croissance automatique sur la base de données et de déplacer le journal des erreurs du serveur SQL et les répertoires de fichiers de trace vers les disques de données. Je ne l'ai pas fait non plus sur l'ancien serveur.

L'ancien serveur n'a rien de ce réglage effectué et les fichiers journaux et de données sont sur le même lecteur qui n'est pas rayé.

La base de données sur le serveur actuel est de 65 Go (45 données et 20 journaux), ce qui était un peu trop volumineux pour être transféré vers le nouveau serveur, donc je teste sur une base de données plus petite (6 données et 13,5 journaux)

Les résultats sur l'ancien serveur sont CPU time = 1311 ms, elapsed time = 1057 ms.et sur le nouveau serveur sont CPU time = 1281 ms, elapsed time = 2525 ms. C'est juste une course mais les résultats sont représentatifs de ce que je vois normalement.

Le nouveau serveur semble avoir constamment un temps écoulé bien plus long que le temps CPU. Est-ce un problème et y a-t-il quelque chose que je puisse faire pour trouver la cause du problème?

Quelles autres mesures puis-je prendre pour savoir pourquoi ce serveur va si lentement quand il semble qu'il devrait être plus rapide que l'ancien serveur?


1
Maxdop 1? Avez-vous comparé les plans d'exécution, pris des statistiques d'attente avant et après et vérifié le blocage?
Aaron Bertrand

1
Combien de lecteurs de données? Avec le stockage de blob de pages standard, chaque lecteur est limité au moindre de 300 IOPS dans le niveau de base ou 500 en standard, ce qui est beaucoup moins qu'un disque tournant sur site. Il est impératif d'avoir autant de disques (vhd) que possible pour maximiser les IOPS et la bande passante. Vous pouvez utiliser les espaces de stockage Windows pour éviter d'avoir à créer un fichier de données distinct sur chaque lecteur.
Dan Guzman

Le nouveau serveur dispose de 4 disques durs virtuels répartis sur deux disques, j'ai donc 1 000 IOPS pour les journaux et 1 000 IOPS pour les données.
Steve Kaye

Un VHD de stockage de blog de page standard ne fournit qu'environ 30 Mo / s de bande passante en raison de la limitation, ce qui ne représente que 60 Mo / s d'agrégat. Pensez à créer 14 disques durs virtuels de données jusqu'à 420 Mo / s et à les répartir entre tous.
Dan Guzman

Je ne peux avoir que 8 disques car c'est une instance A3, donc je devrais passer à A4 pour faire ce qui est deux fois le prix. Je ne pense pas que ce soit un problème de lecteur car les tests ci-dessus avaient tous 0 lectures physiques répertoriées dans les statistiques IO.
Steve Kaye

Réponses:


2

Pour ce qui en vaut la peine, j'ai fini de changer la machine virtuelle dans Azure de type A en type D, puis d'attacher un autre disque et de déplacer TEMPDB sur ce disque. Donc, ma dernière machine virtuelle est maintenant une norme D2 avec 7 Go de RAM et trois disques de données, un pour les fichiers MDF, un autre pour les fichiers LDF et le nouveau disque TEMPDB.

J'ai renoncé à essayer de comprendre avec l'A3 certaines choses que vous avez mentionnées et à simplement mettre à niveau la machine virtuelle. Je suis même passé de A2 à A3 et même si j'ai trouvé des améliorations, j'ai fini par passer à une machine virtuelle D2.

Dans le document que vous avez indiqué, Microsoft recommande un D3 pour Enterprise Edition ou D2 pour Web ou Standard Edition, et l'utilisation de Premium Storage, entre autres choses dans la liste de contrôle au début du document.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.