Collecte de données de performances
Pourquoi et comment collecter des données de performances ?
Dans des temps reculés de l’informatique, la performance était un élément non négligeable. Il faut dire que les ressources système étaient ridiculement petites par rapport à ce que l’on trouve aujourd’hui, ne serait-ce que dans un smartphone. Dans les développements, chaque octet ou fréquence de calcul était utilisé judicieusement. Le système d’information bénéficiait d’un capacity planning (planning de capacité servant à déterminer le moment où le système d’information allait saturer) précis. Cette rigueur s’est assouplie avec le temps, la profusion des ressources ne pousse plus vers de la performance, mais vers de la rapidité de mise en œuvre. On est donc moins à cheval sur la quantité de ressources mobilisées à un instant donné. La conséquence directe à cela est parfois une surexploitation des ressources du système informatique. Elle a un impact important sur l’utilisateur, se caractérisant par des lenteurs dans l’utilisation de ses outils informatique. C’est généralement dans ce genre de cas qu’on opte pour un audit et une collecte de données de performances sur un système. Mais cela...
Windows Performance Logs and Alerts (PLA)
Windows Performance Logs and Alerts est un protocole, mais aussi un composant logiciel qui réalise la collecte de données de diagnostic aussi bien sur des systèmes locaux que distants. La connexion à un système s’appuie sur le couple DCOM/RPC. On rencontre donc encore une fois le problème de sécurisation des échanges, mais également la difficulté de mise en œuvre dans un réseau d’entreprise complexe. C’est pour cette raison qu’il est conseillé d’utiliser les sessions distantes PowerShell, avec le service WinRM et un flux HTTP/HTTPS plus fiable et sécurisé.
De manière générale, grâce à PLA, on peut réaliser les actions suivantes :
-
Collecter des données de performances : ces données sont des mesures prises à un instant donné sur composant matériel (exemple : CPU) ou logiciel (exemple : processus). Ces mesures sont des éléments-clés permettant de résoudre des problèmes de surcharge ou encore d’anticiper l’évolution des ressources du système en établissant un capacity planning. Grâce au protocole PLA, il est possible d’exporter les mesures à travers différentes plateformes et formats. On a ainsi le choix entre une base...
Jeu de commandes PowerShell
Pour gérer les compteurs de performances et leurs données, on dispose de quelques commandes basiques, mais très puissantes. Elles sont toutes contenues dans le module Microsoft.PowerShell.Diagnostics :
PS > Get-Command -Module Microsoft.PowerShell.Diagnostics
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Export-Counter 3.0.0.0 Microsoft.PowerShel...
Cmdlet Get-Counter 3.0.0.0 Microsoft.PowerShel...
Cmdlet Get-WinEvent 3.0.0.0 Microsoft.PowerShel...
Cmdlet Import-Counter 3.0.0.0 Microsoft.PowerShel...
Cmdlet New-WinEvent 3.0.0.0 Microsoft.PowerShel...
Les commandes New-WinEvent et Get-WinEvent ne seront pas vues dans ce chapitre. Elles sont utilisées pour créer ou récupérer les traces d’événements Windows (ETW).
Les commandes *-Counter ne sont pas disponibles sous PowerShell Core version 6.0.2.
1. Listing des catégories de compteurs de performances
Pour préparer au mieux la collecte des données de performances à travers les compteurs, il est préférable d’identifier précisément ceux répondant au mieux aux besoins. Un surplus ou un manque d’informations pourrait être contre-productif.
Le nombre de compteurs de performances est assez important. Par défaut, on en dénombre plus de 2000. Heureusement, pour faciliter la recherche, les compteurs sont regroupés par catégorie (ListSet). Par exemple, on retrouve l’ensemble des compteurs traitant du processeur sous Processeur et Informations sur le processeur.
Pour lister l’ensemble...
Collecte de données à l’échelle de l’entreprise
La méthode de collecte montrée précédemment s’avère insuffisante si le besoin s’élargit à plusieurs milliers de serveurs. L’API PLA a justement été dimensionnée pour répondre à ce besoin et propose une méthode alternative. Cette dernière consiste à mettre en place des collecteurs de données de performances incorporés dans un ensemble de collecteurs de données. Pour transposer à ce qu’on a fait jusqu’ici, la commande Get-Counter jouait le rôle de collecteur de données. La commande Export-Counter couvrait une partie des fonctionnalités d’un ensemble de collecteurs de données.
Pour être plus précis, un collecteur de données définit :
-
l’’intervalle de temps entre deux collectes de données (équivalent du paramètre -SampleInterval de la commande Get-Counter).
-
le nombre de collectes de données à réaliser (équivalent du paramètre -MaxSamples de la commande Get-Counter) ou la durée globale de la collecte.
-
la liste des compteurs de performances (équivalent du paramètre -Counter de la commande Get-Counter).
-
le format du fichier de données résultant (équivalent du paramètre -FileFormat de la commande Export-Counter).
-
le modèle du nom de fichier (exemple : AAAAMMJJ-Collecte-Hebdomadaire) très utile pour éviter l’écrasement des résultats de précédente collecte de données.
Et un ensemble de collecteurs de données définit :
-
l’emplacement des fichiers de données (équivalent du paramètre -Path de la commande Export-Counter),
-
l’identité de l’utilisateur exécutant la collecte,
-
le ou les collecteurs de données,
-
la planification des déclenchements et la durée de la collecte des données.
Un ensemble de collecteurs de données peut contenir plusieurs collecteurs de données. Cela signifie qu’il est possible d’obtenir autant de fichiers qu’il y a de collecteurs dans un ensemble. Dans le cas où l’exploitation des fichiers plats n’est plus suffisante...