Profiler Windows – Introduction

Nous avons souvent besoin de surveiller notre système afin de savoir ce que consomment nos applications en processeurs, mémoires, accès disque, etc…
Il existe en fonction des technologies différents moyens que je ne détaillerais pas ici d'obtenir au moins une partie de ces informations.

Si la machine est une machine virtuelle, les hyperviseurs tels qu’eSXI ou Hyper-V intègrent également de quoi « monitorer » les machines. Nous aurons alors des informations mais plus générales, ce que "voit" l’hyperviseur de la machine.

Il existe pourtant un moyen très simple et rapide d’obtenir ce genre d’informations sur une machine Windows, le système intégrant (presque) tout ce dont nous pourrions avoir besoin en terme d’indicateurs.

Nous avons souvent besoin de surveiller notre système afin de savoir ce que consomment nos applications en processeurs, mémoires, accès disque, etc…
Il existe en fonction des technologies différents moyens que je ne détaillerais pas ici d'obtenir au moins une partie de ces informations.

Si la machine est une machine virtuelle, les hyperviseurs tels qu’eSXI ou Hyper-V intègrent également de quoi « monitorer » les machines. Nous aurons alors des informations mais plus générales, ce que "voit" l’hyperviseur de la machine.

Il existe pourtant un moyen très simple et rapide d’obtenir ce genre d’informations sur une machine Windows, le système intégrant (presque) tout ce dont nous pourrions avoir besoin en terme d’indicateurs.

Pour obtenir ces indicateurs, ça se déroule dans l’ « Analyseur de performances ». Pour l’atteindre, 2 moyens :

  • Panneau de configuration => Système et sécurité => Outils d’administration
  • Touche « Windows » + « R » => Saisir perfmon.exe => Ok

Nous voilà dans notre analyseur :
art_analyseur_1.jpg

Il se divise comme vous pouvez le voir en 3 parties.
La 1ère, Outils d’analyse, va vous permettre de surveiller en temps réel ce qu’il se passe.
Par défaut, il n’y a que le compteur de processeur sur l’instance « _Total », qui correspond au temps de toutes les instances de cœurs que votre processeur comprend.

Pour ajouter des compteurs, faites un clic droit dans la page et « Ajouter des compteurs » :
art_analyseur_2.jpg

En fonction de ce que vous voulez surveiller, il vous suffit de vous promener dans les catégories et d’ajouter les compteurs.
Par exemple pour surveiller un processus particulier (votre application), vous irez dans la catégorie « Processus », vous ajoutez les compteurs en spécifiant dans la liste du bas « Instances » le nom de votre processus.

On peut également ajouter tous les compteurs pour un processus, ce qui nous permettra de tout surveiller :
art_analyseur_3.jpg

Ici, je surveille tout ce que va faire le processus w3p.exe (processus de IIS)

D'accord c'est très bien pour surveiller la machine à un instant T, maintenant on voudrait surveiller une machine et en tirer quelque chose d’exploitable dans le temps.
C’est dans la 2ème catégorie que ça va se passer, « Ensembles de collecteurs de données ».

Il y a 2 sous-parties vraiment intéressantes ici, « Définis par l’utilisateur » qui va nous permettre de faire un peu ce qu’on veut, et les « Système » déjà prédéfinis qui vont nous permettre d’avoir quelque chose rapidement.

Commençons par les systèmes, ils ne sont pas modifiables et vous permettent d’obtenir un rapport sur 1 minute d’analyse.
Pour avoir le rapport, faites un clic droit sur un des compteurs et « Démarrer ».
Pendant ce temps, dépliez la partie Rapports à gauche, vous retrouverez la même arborescence, allez dans le compteur que vous venez de lancer et sélectionner le dernier rapport. Au bout de 60 secondes, le rapport se génère et vous affichera les informations.

Et si on veut faire la même chose sur une plage d’analyse plus longue ?
C’est là que nous allons définir nos propres analyses dans la partie « Défnis par l’utilisateur »

Faites un clic droit sur le titre « Définis par l’utilisateur », puis « Nouveau » et « Ensemble de collecteurs de données ».
art_analyseur_4.jpg

Saisissez un nom, puis nous avons 2 options :

  • A partir d’un modèle : un modèle est un ensemble de compteurs déjà prédéfinis qui vous permettent de créer rapidement une analyse (les modèles peuvent s’exporter/importer, vous pouvez donc vous créer un modèle sur votre poste et l’importer sur une autre machine chez le client par exemple)
  • Le mode manuel pourrait bénéficier d’un article détaillé à lui seul, retenons qu’il s’agit surtout d’un moyen de choisir les compteurs, d’en faire un rapport ou de créer des alertes si un compteur atteint un certain seuil

Pour notre exemple, nous allons faire « Modèle » et sélectionner le modèle de base « System Diagnotics », qui correspond en fait au modèle de l’ensemble système mais que nous pourrons personnaliser.
Vous devrez ensuite choisir le répertoire dans lequel Windows va stocker les données collectées, et enfin le compte qui exécutera la tâche (si votre compte utilisateur n’est pas administrateur, il est possible qu’il ne puisse pas collecter certaines données).

Maintenant que notre compteur existe, nous allons lui demander de tourner le temps que nous voulons.
Ouvrez ses propriétés, allez dans l’onglet « Condition d’arrêt », décocher les cases des limites et la case « Arrêter lorsque tous les collecteurs de données ont terminé »
art_analyseur_5.jpg

Et voilà un collecteur qui va analyser le système pendant 10 minutes (600 secondes donc) et nous afficher un rapport détaillé de tout ce que le système a fait pendant ces 10 minutes.
art_analyseur_6.jpg

art_analyseur_11.jpg

Pour en faire un modèle, faites un clic droit sur le nom de votre collecteur et « Enregistrer le modèle ».

Imaginons que vous avez créé votre modèle, vous l’avez exécuté sur le poste distant, vous avez récupéré les fichiers générés, comment l’analyser maintenant ?
Dans le répertoire extrait, double cliquez sur le fichier « Performance Counter.blg ».
Vous devriez obtenir quelque chose d’assez illisible comme ceci :
art_analyseur_7.jpg

Dans la liste du bas, faites « Ctrl » + « A », clic droit puis « Masquer les compteurs »
Il faut maintenant remettre les compteurs que nous souhaitons analyser.

Imaginons que je m’inquiète du temps de calcul de mon processeur et de l’accès disque.
J’ajoute les compteurs « % temps processeurs » (en tiret rouge) ainsi que « Moyenne disque s/transfert »

J’obtiens alors ce graphique :
art_analyseur_8.jpg

On peut noter que vers 18 :10 :52, j’ai eu un pic d’activité. Nous allons analyser plus en détail ce passage, en mettant la souris sur le graphique au niveau de 18 :10 :50, un clic enfoncé et glissé jusque 18 :10 :55 sélectionne la zone, puis un clic droit => zoom va nous afficher le détail de cette période.
C’est déjà beaucoup plus lisible, et je pourrais maintenant ajouter d’autres compteurs pour vérifier leur état lors de ce pic.
art_analyseur_9.jpg

Continuons notre analyse avec un autre fichier intéressant que vous avez récupéré, NtKernel.etl.
Ce fichier détaille ce que le noyau du système traite (processus, threads, accès aux disques, évènements, etc…).
Pour analyser un graphique, sélectionnez-le dans la colonne de gauche et faites le glisser dans la fenêtre de droite.

Ici j’ai ajouté le graphique sur les processus, en pointant la souris sur un processus une infobulle vous donnera les détails
art_analyseur_10.jpg

Il y a ainsi plusieurs graphiques que vous pouvez analyser pour tenter d'obtenir les informations dont vous avez besoin.

Nous touchons à la fin de cet article, vous venez de voir que Windows intègre nativement beaucoup de choses pour nous permettre de surveiller l'activité du système.
Ces outils sont très complets et il est assez simple d'obtenir des informations.

Toutefois il peut paraitre plus compliqué de bien cibler ce que nous voulons, et l'analyse n'est pas toujours facile surtout si vous n'êtes pas habitué à analyser ce genre d'informations.
Mais c'est en forgeant qu'on devient forgeron, je vous invite à utiliser par vous-même ces outils pour vous en faire une meilleure idée 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *