- Adam Bertram
@adbertram
- 6 avril 2020, 11h18 HAE
L’un des outils les plus négligés de Windows est Perfmon, autrement appelé moniteur de performances. Cet utilitaire a de nombreuses capacités négligées, l’une d’entre elles étant la capacité d’alerter sur diverses conditions métriques. Dans cet article, nous explorons comment utiliser correctement la capacité d’alerte de Perfmon avec une utilisation élevée du processeur.
Qu’est-ce que Perfmon ?
Disponible depuis les débuts de Windows dans diverses itérations, Performance Monitor est disponible en tant que composant logiciel enfichable MMC pour Windows destiné à aider à surveiller l’utilisation du système et diverses mesures de performance. La vue par défaut lors du lancement met en évidence quelques zones différentes et des métriques en temps réel.
- Moniteur de performance – Visualisation en temps réel des métriques
- Ensembles de collecteurs de données – Collecte définie de données sur un intervalle de temps donné
- Rapports – Comment afficher les données collectées dans les ensembles de collecteurs de données
Si Performance Monitor n’est pas lancé en tant qu’administrateur, son utilité sera limitée et vous risquez de ne pas voir les ensembles de collecteurs de données ou les rapports.
Affichage des métriques
Lorsque vous cliquez pour la première fois sur Moniteur de performances, un graphique linéaire en mouvement est affiché, par défaut %Processor Time
. Ceci, en soi, n’est pas très utile car les données sont une valeur évolutive et nous voulons vraiment savoir s’il y a des conditions défavorables.
Vous pouvez ajouter des mesures supplémentaires à ce graphique, en cliquant sur le plus vert et en ajoutant d’autres mesures. Gardez à l’esprit que l’échelle de valeurs peut ne pas correspondre entre différents points de données et peut donc être moins utile lorsqu’elle est combinée sur un seul graphique.
Ensembles de collecteurs de données
Les données en temps réel sont utiles, mais pas ce que nous recherchons en fin de compte. Comment alors alerter sur certaines conditions, dans ce cas, une utilisation élevée du PROCESSEUR maintenue au fil du temps?
C’est là que les ensembles de collecteurs de données entrent en jeu. Après avoir étendu les Ensembles de Collecteurs de données, cliquez avec le bouton droit sur Défini par l’utilisateur → Nouveau → Ensemble de Collecteurs de données.
Vous aurez la possibilité de nommer l’ensemble et de créer l’ensemble à partir d’un modèle ou de créer l’ensemble manuellement. Dans ce cas, nous devons créer manuellement notre configuration.
Dans ce cas, nous mettons en place une Alerte de compteur de performances. Cela surveillera un compteur donné et nous pourrons ensuite dire à l’alerte de prendre certaines actions.
Puisque nous cherchons à surveiller le pourcentage total de CPU, il est très important de choisir la métrique correcte à surveiller. Ici, nous choisissons Processeur → _Total en cliquant sur « Ajouter > > » à côté de l’instance sélectionnée.
Un problème est que vous obtenez toutes les métriques _totales du processeur. En fin de compte, nous voulons juste la métrique \Processor(_Total)\% Processor Time
. Pour supprimer les autres, sélectionnez chacun d’eux et cliquez sur le bouton Supprimer.
Malheureusement, la façon dont la suppression fonctionne, vous ne pouvez pas simplement cliquer plusieurs fois sur le bouton Supprimer car il déplace l’élément sélectionné vers le haut à chaque fois. Sélectionnez chaque mesure individuellement et cliquez sur Supprimer.
Nous devons maintenant indiquer au compteur de performances à quel moment l’alerte doit commencer et dans ce cas, nous cherchons à l’alerter uniquement lorsqu’elle est supérieure à 95
.
Enfin, enregistrez et fermez le jeu de collecteurs de données.
Configuration des alertes
Avec notre configuration par défaut, nous devons maintenant configurer l’action d’alerte qui va avoir lieu. Il existe deux façons de définir les alertes, l’Action d’alerte et la Tâche d’alerte. Sélectionnez votre ensemble de collecteurs de données Définis par l’utilisateur → Utilisation élevée du processeur, cliquez avec le bouton droit sur l’entrée DataCollector01
par défaut et choisissez Propriétés.
Le moyen le plus simple de commencer à surveiller les entrées consiste à accéder à l’onglet Action d’alerte et à cocher la case « Enregistrer une entrée dans le journal des événements de l’application ». Vous avez également la possibilité pratique de démarrer un ensemble de collecteurs de données différent lorsque les critères d’une alerte sont remplis. De cette façon, vous pouvez collecter une journalisation supplémentaire si nécessaire. Ici cependant, nous allons juste enregistrer une entrée.
Configurer une tâche d’alerte
C’est bien, mais finalement nous n’obtenons pas d’alerte réelle dans ce cas, juste une nouvelle entrée de journal des événements. Dans l’onglet Tâche d’alerte, nous pouvons dire à ce collecteur de données de démarrer une tâche planifiée et d’envoyer certains paramètres, qui peuvent ensuite effectuer les actions d’alerte que nous souhaitons. Pour que cela fonctionne, nous devons faire deux choses. Créez le script à exécuter et la tâche planifiée elle-même.
Script de journalisation
Voici un script de journalisation très simple. Nous lisons les métriques d’alerte émises par la tâche d’alerte et envoyons ces résultats dans un fichier journal.
HighCPUAlert.ps1
$Date = $args $Threshold = $args $Counter = $args $Value = " {1} {2} | {3}" -F $Date, 'High CPU', $Threshold, $Counter Add-Content -Value $Value -Path 'C:\HighCPUAlert.log'
Tâche planifiée
Ici, nous devons créer la tâche planifiée qui exécutera réellement le script lors de l’appel par le collecteur de données. Nous utilisons PowerShell pour créer la tâche planifiée et utilisons PowerShell 7 comme exécution, comme indiqué par l’exécutable pwsh.exe
.
$Params = @{ "Action" = New-ScheduledTaskAction -Execute "pwsh.exe" -Argument "-NoProfile -File C:\HighCPUAlert.ps1 $(Arg0)" "Principal" = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType ServiceAccount "Settings" = New-ScheduledTaskSettingsSet } New-ScheduledTask @Params | Register-ScheduledTask 'HighCPUAlert'
Jusqu’à ce que PowerShell 7 soit officiellement publié, l’exécutable peut être pwsh-preview.exe
.
Configuration de la Tâche d’alerte
Enfin, nous devons configurer la Tâche d’alerte sur le Collecteur de données. Pour ce faire, accédez à nouveau aux propriétés de DataCollector01
et entrez les détails suivants.
Nous citons les arguments de la tâche car ils se présentent sous forme de chaînes dans PowerShell. Par conséquent, en les citant, nous facilitons la séparation des arguments par index, c’est-à-dire
$arg
ou$arg
.
Une fois que vous cliquez sur Enregistrer, vous pouvez être invité à fournir un identifiant, il devrait s’agir d’un utilisateur avec un accès administrateur.
Exécution du Collecteur de données
En cliquant avec le bouton droit sur le jeu de collecteurs de données, Utilisation élevée du processeur et en sélectionnant Démarrer, vous commencerez le processus de collecte. Si vous surveillez les tâches planifiées, la tâche planifiée nouvellement créée s’exécutera périodiquement en fonction de l’intervalle de surveillance et du seuil définis.
Conclusion
En utilisant les outils de surveillance intégrés de Windows, vous pouvez structurer des solutions de surveillance utiles et puissantes autour des principaux utilitaires et PowerShell. Avec cette flexibilité, vous serez en mesure d’aller au fond de presque tous les problèmes qui peuvent être diagnostiqués via la collecte de données métriques!
Adam Bertram est un vétéran de l’informatique de plus de 20 ans et un professionnel expérimenté du commerce en ligne. Il est consultant, MVP Microsoft, blogueur, formateur, auteur publié et spécialiste du marketing de contenu pour plusieurs entreprises technologiques. Retrouvez les articles d’Adam sur adamtheautomator.com , connectez-vous sur LinkedIn, ou suivez-le sur Twitter à @adbertram.Lire la Bio complète »