Partager via


Collecter une ligne de base : Meilleures pratiques relatives aux performances de SQL Server sur une machine virtuelle Azure

S’applique à :SQL Server sur la machine virtuelle Azure

Cet article fournit des informations pour collecter une ligne de base des performances sous la forme d’une série de meilleures pratiques et d’instructions pour optimiser les performances de votre SQL Server sur des machines virtuelles Azure.

En règle générale, il existe un compromis entre l’optimisation des coûts et l’optimisation des performances. Cette série de bonnes pratiques en matière de performances se concentre sur l’obtention des meilleures performances pour SQL Server sur des machines virtuelles Azure. Si votre charge de travail est moindre, vous n’aurez peut-être pas besoin de toutes les optimisations recommandées. Tenez compte de vos besoins de performances, des coûts et des modèles de charges de travail lors de l’évaluation de ces recommandations.

Vue d’ensemble

Pour une approche prescriptive, rassemblez des compteurs de performances à l’aide de PerfMon ou LogMan et capturez les statistiques d’attente SQL Server pour mieux comprendre les pressions générales et les goulots d’étranglement potentiels de l’environnement source.

Commencez par collecter le processeur, la mémoire, les IOPS, le débit et la latence de la charge de travail source aux heures de pointe en suivant la liste de contrôle des performances de l’application.

Recueillez des données pendant les heures de pointe, telles que les charges de travail d’une journée de travail ordinaire, mais aussi d’autres processus de charge élevée, tels que le traitement de fin de journée et les charges de travail ETL effectuées pendant le weekend. Envisagez d'augmenter vos ressources pour des charges de travail anormalement lourdes, telles que le traitement de fin de trimestre, puis réduisez-les une fois la charge de travail terminée.

Utilisez l’analyse des performances pour sélectionner la taille de machine virtuelle pouvant adapter son échelle aux exigences de performances de votre charge de travail.

Stockage

Les performances de SQL Server dépendent fortement du sous-système d’E/S. Mesurez les performances de stockage par E/S par seconde et par débit. Si votre base de données ne tient pas dans la mémoire physique, SQL Server charge et décharge en permanence les pages de base de données dans le pool de mémoire tampon. Traitez les fichiers de données pour SQL Server différemment. L’accès aux fichiers journaux est séquentiel, sauf quand une transaction doit être annulée, où les fichiers de données, y compris tempdb, font l’objet d’un accès aléatoire. Si vous avez un sous-système d’E/S lent, vos utilisateurs peuvent rencontrer des problèmes de performances tels que des temps de réponse lents et des tâches qui ne sont pas terminées en raison de délais d’attente.

Les machines virtuelles de la Place de marché Azure ont des fichiers journaux sur un disque physique séparé des fichiers de données par défaut. Le nombre et la taille des fichiers de données de la base de données tempdb sont conformes aux bonnes pratiques et ciblent le lecteur éphémère D:\.

Les compteurs PerfMon suivants peuvent vous aider à valider le débit d’E/S que requiert votre SQL Server :

  • \LogicalDisk\Disk Reads/Sec (IOPS de lecture)
  • \LogicalDisk\Disk Writes/Sec (IOPS d’écriture)
  • \LogicalDisk\Disk Read Bytes/Sec (débit de lecture requis pour les fichiers de données, de journal et de base de données tempdb)
  • \LogicalDisk\Disk Write Bytes/Sec (débit d’écriture requis pour les fichiers de données, de journal et de base de données tempdb)

À l’aide des exigences d’IOPS et de débit aux niveaux de pointe, évaluez les tailles de machine virtuelle correspondant à la capacité de vos mesures.

Si votre charge de travail nécessite 20 000 IOPS de lecture et 10 000 E/S par seconde d’écriture, vous pouvez choisir E16s_v3 (avec jusqu’à 32 000 IOPS mises en cache et 25 600 IOPS non mises en cache) ou M16_s (avec jusqu’à 20 000 IOPS mises en cache et 10 000 IOPS non mises en cache) avec deux disques P30 rayés à l’aide d’espaces de stockage.

Veillez à bien identifier les besoins de la charge de travail en termes de débit et d’IOPS, car les machines virtuelles ont des limites d’échelle différentes pour les IOPS et le débit.

Mémoire

Suivez la mémoire externe que le système d’exploitation utilise, ainsi que la mémoire que SQL Server utilise en interne. L’identification de la pression pour l’un ou l’autre composant vous permet de dimensionner des machines virtuelles et d’identifier les opportunités de réglage.

Les compteurs PerfMon suivants peuvent vous aider à valider l’intégrité de la mémoire d’une machine virtuelle SQL Server :

Calculer

Le calcul dans Azure est géré différemment des environnements locaux. Les serveurs locaux sont conçus pour durer plusieurs années sans mise à niveau en raison de la surcharge de gestion et du coût de l’acquisition de nouveaux matériels. La virtualisation réduit certains de ces problèmes, mais les applications sont optimisées pour tirer pleinement parti du matériel sous-jacent. Toute modification significative de la consommation de ressources nécessite un rééquilibrage de l’ensemble de l’environnement physique.

Ce problème n’existe pas dans Azure. Vous pouvez facilement créer une machine virtuelle sur une série différente de matériel, ou même dans une autre région.

Dans Azure, vous souhaitez tirer parti de la plupart des ressources de la machine virtuelle que possible. Configurez les machines virtuelles Azure pour conserver le processeur moyen le plus élevé possible sans affecter la charge de travail.

Les compteurs PerfMon suivants peuvent vous aider à valider l’intégrité de calcul d’une machine virtuelle SQL Server :

  • \Processor Information(_Total)% Temps du processeur
  • \Process(sqlservr)% Temps du processeur

Note

Visez à utiliser 80% de votre calcul, avec des pics supérieurs à 90%, mais n’atteignez pas 100% pendant une période prolongée. Fondamentalement, provisionnez uniquement le calcul dont l’application a besoin. Prévoyez d’effectuer un scale-up ou un scale-down en fonction des besoins de l’entreprise.

Pour obtenir des conseils détaillés sur chaque zone d’optimisation :

Consultez d’autres articles relatifs aux machines virtuelles avec SQL Server à la page Vue d’ensemble de SQL Server sur les machines virtuelles Azure. Si vous avez des questions sur les machines virtuelles SQL Server, consultez les Questions Fréquemment Posées.