57 votes

Log %CPU par processus au fil du temps

Existe-t-il un moyen simple, sous Windows, d'enregistrer dans un fichier le temps en %CPU par processus, en vue d'une analyse ultérieure ?

Pour autant que je puisse voir...

  1. Le gestionnaire de tâches m'indique le %CPU par processus mais seulement visuellement - pas de moyen de sauvegarder dans un fichier. aucun moyen d'enregistrer dans un fichier.
  2. Perfmon me permet de sauvegarder dans un fichier et de créer en plus un fichier basé sur le temps (en prenant des instantanés à des intervalles de temps spécifiés). fichier basé sur le temps (en prenant des instantanés à des intervalles de temps spécifiés) - ce qui est presque ce que je veux. ce qui est presque ce que je veux, sauf que, d'après ce que je peux voir, il ne peut pas décomposer le %CPU par processus.
  3. L'Explorateur de processus me permet de décomposer par processus, mais il ne peut faire que enregistrer le fichier en tant qu'instantané d'un seul point dans le temps.

Aucun de ces produits ne correspond donc à ce dont j'ai besoin : J'ai besoin d'un fichier qui contienne quelque chose comme "top 10 processes by CPU, every 15 seconds, until I stop the monitoring" La raison pour laquelle j'ai besoin de cela est que j'ai une machine sur laquelle un certain processus provoque occasionnellement de brefs pics d'utilisation du CPU plusieurs fois par jour et j'ai besoin de savoir quel processus est le coupable.

Est-ce que quelque chose peut faire cela, ou ai-je manqué une fonctionnalité de perfmon ou d'explorateur de processus ?

55voto

diegogs Points 624

Moniteur de processus peut le faire pour vous.

Vous voudrez peut-être d'abord activer la collecte des événements de profilage :

enter image description hereenter image description here

Ensuite, il vous suffit de collecter des données aussi longtemps que vous le souhaitez (vous pouvez éventuellement mettre en place des filtres et activer la fonction Abandonner les événements filtrés si vous prévoyez de collecter des données pendant de longues périodes). Allez ensuite dans Outils -> Synthèse des activités du processus :

enter image description here

Vous obtiendrez alors une liste de tous les processus actifs que vous avez enregistrés, avec leur activité au fil du temps. enter image description here

Vous pouvez ensuite ouvrir les détails d'un seul processus (en double-cliquant dessus) et inspecter les horodatages de certains événements dans le graphique :

enter image description here

3voto

Pedro Estrela Points 41

Instructions étape par étape, basées sur la réponse de "Der Hochstapler". https://github.com/pestrela/smi_counter/blob/master/light_monitor/README.md

  1. Installation

  2. Configuration :

    • CTRL+E : Arrêter la capture
    • CTRL+X : supprimer les paquets
    • CTRL+R : Réinitialiser le filtre
    • Barre d'outils :
      • DÉSACTIVER tous les événements sur le côté très droit de la barre d'outils (c'est-à-dire 4 icônes) tous les types d'événements (4 icônes sur le côté très droit de la barre d'onglets)
      • ACTIVER le dernier type d'événement (toute dernière icône sur la barre d'onglets - voir l'image)
    • Menus :
      • Filtrer / Supprimer les paquets filtrés = ON
      • options / profondeur de l'historique : 10 millions
      • Options / Événements de profilage OFF
  3. Capture :

    • CTRL+E : Démarrer la capture
      • très important : confirmez que vous obtenez environ ~300 événements par seconde.
      • si vous en obtenez davantage, vérifiez à nouveau le filtrage
    • Exécutez un programme à forte intensité de CPU pendant quelques secondes à des fins de test :
      • ie : powerMAX, cpu-z benchmark tab, etc.
    • CTRL+E : Arrêter la capture
  4. Analyse :

    • Outils / Résumé des activités du processus
      • dans la nouvelle fenêtre, trier par CPU
      • Double-cliquez sur le processus pour obtenir une chronologie détaillée
      • Détail d'une colonne, chaîne "temps d'utilisation
      • ce sera le temps d'utilisation cumulé. Sur mes machines à 8 cœurs logiques, ce temps croît de 8 secondes pour chaque seconde de temps réel.

Hors champ : Stationnement de l'unité centrale - voir ce lien pour désactiver cela .
Exportation de la configuration : ProcmonConfiguration.pmc

ProcmonConfiguration.pmc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X