Résoudre les problèmes de performances des machines virtuelles Linux avec Diagnostics de performances (PerfInsights)
S’applique à : ✔️ Machines virtuelles Linux
Note
CentOS référencé dans cet article est une distribution Linux et atteint la fin de vie (EOL). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez les conseils sur la fin de vie centOS.
PerfInsights Linux est un outil de diagnostic autonome qui collecte et analyse les données de diagnostic, puis fournit un rapport qui aide à résoudre les problèmes de performances des machines virtuelles Linux dans Azure. Vous pouvez exécuter PerfInsights sur les machines virtuelles prises en charge en tant qu’outil autonome, ou directement à partir du portail en utilisant Performance Diagnostics pour les machines virtuelles Azure.
Si vous rencontrez des problèmes de performances avec des machines virtuelles, exécutez cet outil avant de contacter le support.
Note
Les diagnostics continus (préversion) sont actuellement pris en charge uniquement sur Windows.
Scénarios de résolution des problèmes pris en charge
PerfInsights peut collecter et analyser plusieurs types d’informations. Les sections suivantes couvrent les scénarios courants.
Analyse rapide des performances
Ce scénario collecte des informations de base, telles que la configuration du stockage et du matériel de votre machine virtuelle, les divers journaux, notamment :
Informations sur le système d’exploitation
Informations sur les appareils PCI
Journaux des systèmes d’exploitation invités généraux
Fichiers de configuration
Informations sur le stockage
Configuration des machines virtuelles Azure (collecte effectuée avec Azure Instance Metadata Service)
Liste des processus exécutés, utilisation du disque, de la mémoire et du processeur
Informations réseau
Il s’agit d’une collecte passive d’informations qui ne sont pas censées affecter le système.
Remarque
Le scénario d’analyse rapide des performances est automatiquement inclus dans chacun des scénarios suivants :
Analyse des performances
Ce scénario est similaire à l’analyse rapide des performances, mais permet de capturer des informations de diagnostic pour une durée plus longue.
Analyse des performances HPC
Ce scénario est destiné à résoudre les problèmes sur les machines virtuelles de taille HPC, cʼest-à-dire les séries H et N. Il vérifie la configuration dʼune machine virtuelle par rapport à ce que lʼéquipe Azure HPC Platform a testé et recommandé. Il récupère également les journaux et les diagnostics en rapport avec lʼétat et à la configuration du matériel spécial disponible sur ces machines virtuelles, notamment :
Informations sur le pilote GPU
Diagnostic du matériel GPU
Informations et configuration du pilote InfiniBand
Diagnostic du périphérique InfiniBand
Fichiers de configuration de réseau
Informations sur le réglage des performances
Remarque
Certains outils utilisés par le scénario dʼanalyse des performances HPC, tels que les commandes CLI fournies avec les pilotes de périphérique, ne sont pas présents sur toutes les machines virtuelles. Dans ce cas, ces parties de lʼanalyse seront ignorées. Lʼexécution de ce scénario nʼinstalle aucun logiciel sur les machines virtuelles et nʼapporte aucune autre modification permanente.
Remarque
Lʼexécution du scénario HPC directement à partir du portail Azure nʼest pas prise en charge pour le moment. Il faut donc télécharger PerfInsights et lʼexécuter à partir de la ligne de commande pour lʼutiliser.
Quel type d’informations collecte PerfInsights
Les informations relatives à la machine virtuelle Linux, au système d’exploitation, aux appareils de traitement par blocs, aux grands consommateurs de ressources, à la configuration et aux différents journaux sont collectées. Voici plus de détails :
Système d’exploitation
- Distribution et version Linux
- Informations sur le noyau
- Informations sur les pilotes
- Journaux dʼextension de machine virtuelle du pilote HPC Azure
*
- Configuration de SELinux
*
Matériel
- Appareils PCI [
*
] - Résultat de lscpu
*
- Vidage de la table du BIOS de gestion de systèmes
*
- Appareils PCI [
Processus et mémoire
- Liste des processus (nom de la tâche, mémoire utilisée, fichiers ouverts)
- Mémoire physique totale, disponible et libre
- Mémoire d’échange totale, disponible et libre
- Capture de profilage du processeur et de l’utilisation du processeur par les processus à intervalle de 5 secondes
- Capture de profilage de l’utilisation de la mémoire par les processus à intervalle de 5 secondes
- Nombre limite dʼutilisateurs pour lʼaccès à la mémoire
*
- Configuration NUMA
*
GPU
- Résultat de Nvidia SMI
*
- Diagnostic Nvidia DCGM
*
- Fichiers de vidage des informations de débogage Nvidia
*
- Résultat de Nvidia SMI
Mise en réseau
- Liste des cartes réseau avec statistiques des cartes
- Tableau de routage réseau
- Ports ouverts et état
- Clés de partition InfiniBand
*
- Résultat dʼibstat
*
Stockage
- Liste des appareils de traitement par blocs
- Liste des partitions
- Liste des points de montage
- Informations sur le volume MDADM
- Informations sur le volume LVM
- Capture de profilage sur tous les disques à intervalle de 5 secondes
Journaux d’activité
- /var/log/messages
- /var/log/syslog
- /var/log/kern.log
- /var/log/cron.log
- /var/log/boot.log
- /var/log/yum.log
- /var/log/dpkg.log
- /var/log/sysstat or /var/log/sa [
**
] - /var/log/cloud-init.log
- /var/log/cloud-init-output.log
- /var/log/gpu-manager.log
- /var/log/waagent.log
- /var/log/azure/[extension folder]/*log*
- /var/opt/microsoft/omsconfig/omsconfig.log
- /var/opt/microsoft/omsagent/log/omsagent.log
- /etc/waagent.config
- Sortie de journalctl des cinq derniers jours
*
Uniquement lors du scénario HPC
Suivi des diagnostics de performances
Exécute un moteur basé sur des règles en arrière-plan afin de collecter des données et diagnostiquer les problèmes de performances en cours. Les règles sont affichées dans le rapport, sous l’onglet Catégorie -> Recherche.
Chaque règle comprend les éléments suivants :
- Recherche : description de la recherche.
- Recommandation : recommandation relative à l’action pouvant être entreprise pour la recherche. Il existe également un ou plusieurs liens de référence vers la documentation, apportant plus d’informations sur la recherche et/ou la recommandation.
- Niveau d’impact : représente le potentiel d’impact sur les performances.
Les catégories de règles actuellement prises en charge sont les suivantes :
Utilisation élevée des ressources :
- Utilisation élevée de l’UC : détecte les périodes dʼutilisation élevée du processeur et montre les principaux utilisateurs du processeur pendant ces périodes.
- Utilisation élevée de la mémoire : détecte les périodes dʼutilisation élevée de la mémoire et montre les principaux utilisateurs de la mémoire pendant ces périodes.
- Utilisation élevée du disque : détecte les périodes dʼutilisation élevée de disque sur les disques physiques et montre les principaux utilisateurs de disque pendant ces périodes.
Stockage : détecte des configurations de stockage spécifiques.
Mémoire : détecte des configurations de mémoire spécifiques.
GPU : détecte des configurations GPU spécifiques.
Réseau : détecte des paramètres réseau spécifiques.
Système : détecte des paramètres système spécifiques.
Remarque
[*
] Les informations PCI ne sont pas encore collectées sur les distributions Debian et SLES.
[**
] /var/log/sysstat ou/var/log/sa contient les fichiers de rapport d’activité système (SAR) qui sont collectés par le package sysstat. Si le package sysstat n’est pas installé sur la machine virtuelle, l’outil PerfInsights recommande de l’installer.
Exécuter PerfInsights Linux sur votre machine virtuelle
Que dois-je savoir avant d’exécuter l’outil
Exigences de l’outil
Cet outil doit être exécuté sur la machine virtuelle qui présente le problème de performances.
Python 3.6 ou version ultérieure doit être installé sur la machine virtuelle.
Remarque
Python 2 n’est plus pris en charge par la Fondation Python Software (PSF). Si Python 2.7 est installé sur la machine virtuelle, PerfInsights peut être installé. Cependant, aucune modification ou correction de bogue ne sera apportée dans PerfInsights pour prendre en charge Python 2.7. Pour plus d’informations, consultez l’article Sunsetting Python 2 (en anglais seulement).
Les distributions prises en charge sont les suivantes :
Note
Microsoft n’a testé que les versions répertoriées dans le tableau. Si une version n’est pas répertoriée dans le tableau, elle n’a pas été explicitement testée par Microsoft, mais il se peut tout de même que la version fonctionne.
Distribution Version Oracle Linux Server 6.10 [ *
], 7.3, 7.5, 7.6, 7.7, 7.8, 7.9CentOS 6.5 [ *
], 7.6, 7.7, 7.8, 7.9RHEL 7.2, 7.5, 8.0 [ *
], 8.1, 8.2, 8.6, 8.8Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04 Debian 8, 9, 10, 11 [ *
]SLES 12 SP4 [ *
], 12 SP5 [*
], 15 [*
], 15 SP1 [*
], 15 SP2 [*
], 15 SP4 [*
]AlmaLinux 8,4, 8,5 Linux Azure 2,0
Remarque
[*
] Reportez-vous à la section Problèmes connus
Remarque
[*
] Le scénario HPC repose sur lʼoutil HPCDiag, vérifiez donc sa matrice de prise en charge pour les tailles de machines virtuelles et les systèmes dʼexploitation pris en charge. En particulier, les machines virtuelles de taille NDv4 ne sont pas encore prises en charge et les rapports de ces machines virtuelles peuvent afficher des résultats superflus.
Problèmes connus
RHEL 8 n’a pas python installé par défaut, car Python 2 et Python 3.6 sont disponibles. Pour installer Python 3.6, exécutez la
yum install python3
commande.La collecte des informations de l’agent invité peut échouer sur CentOS 6.x
Les informations sur les appareils PCI ne sont pas collectées sur les distributions Debian.
Les informations LVM sont partiellement collectées sur certaines distributions.
Comment exécuter PerfInsights
Vous pouvez exécuter PerfInsights sur une machine virtuelle en installant Azure Performance Diagnostics à partir du portail Azure. Vous pouvez également l’exécuter en tant qu’outil autonome.
Remarque
PerfInsights collecte et analyse simplement les données. Il n’apporte aucune modification au système.
Installer et exécuter PerfInsights à partir du portail Azure
Pour plus d’informations sur cette option, consultez Azure Performance Diagnostics.
Exécuter PerfInsights en mode autonome
Pour exécuter l’outil PerfInsights, suivez ces étapes :
Téléchargez PerfInsights.tar.gz dans un dossier sur votre machine virtuelle et extrayez le contenu à l’aide des commandes ci-dessous à partir du terminal.
wget https://download.microsoft.com/download/9/F/8/9F80419C-D60D-45F1-8A98-718855F25722/PerfInsights.tar.gz
tar xzvf PerfInsights.tar.gz
Accédez au dossier qui contient le fichier
perfinsights.py
, puis exécutezperfinsights.py
pour voir les paramètres de ligne de commande disponibles.cd <the path of PerfInsights folder> sudo python perfinsights.py
La syntaxe de base pour l’exécution de scénarios PerfInsights est la suivante :
sudo python perfinsights.py -r <ScenarioName> -d [duration]<H | M | S> [AdditionalOptions]
Vous pouvez utiliser l’exemple ci-dessous pour exécuter le scénario d’analyse rapide des performances pendant 1 minute et créer les résultats sous le dossier /tmp/output :
sudo python perfinsights.py -r quick -d 1M -a -o /tmp/output
Vous pouvez utiliser l’exemple suivant pour exécuter le scénario d’analyse de performances pendant 5 minutes et charger le fichier de résultat (au format.tar) dans le compte de stockage :
sudo python perfinsights.py -r vmslow -d 300S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
Vous pouvez utiliser lʼexemple suivant pour exécuter le scénario dʼanalyse de performances HPC pendant 1 minute et charger le fichier TAR de résultat dans le compte de stockage :
sudo python perfinsights.py -r hpc -d 60S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
Remarque
Avant d’exécuter un scénario, PerfInsights invite l’utilisateur à accepter de partager les informations de diagnostic et à accepter le CLUF. Utilisez l’option -a ou --accept-disclaimer-and-share-diagnostics pour ignorer ces invites.
Si vous avez un ticket de support actif avec Microsoft et que vous exécutez PerfInsights sur demande de l’ingénieur de support avec qui vous travaillez, veillez à fournir le numéro du ticket de support à l’aide de l’option -s ou --support-request.
Une fois l’exécution terminée, un nouveau fichier tar s’affiche dans le même dossier que PerfInsights, sauf si aucun dossier de sortie n’est spécifié. Le nom du fichier est PerformanceDiagnostics_aaaa-MM-jj_hh-mm-ss-fff.tar.gz. Vous pouvez envoyer ce fichier à l’agent du support pour analyse ou ouvrir le rapport dans le fichier pour examiner les résultats et recommandations.
Examinez le rapport de diagnostics
Le fichier PerformanceDiagnostics_aaaa-MM-jj_hh-mm-ss-fff.tar.gz peut inclure un rapport HTML détaillant les conclusions de PerfInsights. Pour consulter le rapport, développez le fichier PerformanceDiagnostics_aaaa-MM-jj_hh-mm-ss-fff.tar.gz, puis ouvrez le fichier PerfInsights Report.html.
Onglet Overview
L’onglet Overview fournit des détails de base sur l’exécution et des informations sur les machines virtuelles. L’onglet Findings affiche un résumé des recommandations de toutes les différentes sections du rapport PerfInsights.
Remarque
Les conclusions identifiées comme étant d’importance élevée sont des problèmes connus qui peuvent conduire à des problèmes de performances. Les conclusions identifiées comme étant d’importance moyenne représentent des configurations non optimales ne provoquant pas forcément de problèmes de performances. Les conclusions identifiées comme étant d’importance faible sont des instructions données à titre informatif uniquement.
Examinez les suggestions et les liens pour toutes les conclusions d’importance élevée et moyenne. En savoir plus sur la façon dont elles peuvent affecter les performances, et sur les meilleures pratiques pour les configurations de performances optimisées.
Onglet CPU
L’onglet CPU fournit des informations sur la consommation du processeur au niveau du système pendant l’exécution de PerfInsights. Les informations sur les périodes de grande utilisation du processeur et sur les principaux consommateurs de processeur durables sont utiles pour résoudre les gros problèmes de processeur.
Onglet GPU
Lʼonglet GPU fournit des informations sur les résultats qui seront utiles pour résoudre les problèmes liés au GPU.
Onglet Réseau
Lʼonglet Réseau fournit des informations sur la configuration et lʼétat du réseau. Des informations sur les résultats liés au réseau, y compris les problèmes InfiniBand dans le scénario HPC, sont disponibles ici.
Onglet Stockage
La section Conclusions affiche les différentes conclusions et recommandations relatives au stockage.
L’onglet Block Devices et autres sections associées comme les onglets Partitions, LVM et MDADM décrivent comment les appareils de traitement par blocs sont configurés et liés entre eux.
Onglet Linux
L’onglet Linux contient des informations sur le matériel et le système d’exploitation exécuté sur votre machine virtuelle. Les détails incluent une liste des processus en cours dʼexécution et des informations sur lʼagent invité, les appareils PCI, le processeur, le GPU, les pilotes et les pilotes LIS.
Ou sur une machine virtuelle compatible avec GPU :
Prochaines étapes
Vous pouvez charger les journaux de diagnostic et les rapports vers le Support Microsoft pour un examen approfondi. Lorsque vous travaillez avec le support Microsoft, il vous sera probablement demandé de transmettre la sortie générée par PerfInsights pour aider le processus de dépannage.
La capture d’écran suivante affiche un message semblable à ce que vous pouvez recevoir :
Suivez les instructions dans le message pour accéder à l’espace de travail de transfert de fichier. Pour plus de sécurité, vous devez modifier votre mot de passe à la première utilisation.
Après vous être connecté, vous voyez s’afficher une boîte de dialogue vous invitant à charger le fichier PerformanceDiagnostics_aaaa-MM-jj_hh-mm-ss-fff.tar.gz collecté par PerfInsights.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.