Je rencontre parfois des serveurs (Windows 2003 et 2008) avec un temps d'interruption élevé du processeur. Existe-t-il un moyen de voir quel programme ou quel périphérique est à l'origine des interruptions?
la source
Je rencontre parfois des serveurs (Windows 2003 et 2008) avec un temps d'interruption élevé du processeur. Existe-t-il un moyen de voir quel programme ou quel périphérique est à l'origine des interruptions?
Après avoir fouillé dans la documentation (basée sur les autres réponses ici), voici le processus que j'ai finalement utilisé:
Capturer le journal ETW du problème
Pour ce faire, le moyen le plus simple consiste à utiliser Windows Performance Recorder . Je ne suis pas sûr de sa date d'apparition, mais semble être intégré aux versions récentes de Windows. Définissez le profil sur CPU usage
.
ou, à l'aide d'une invite de commande avec privilèges élevés, accédez au dossier qui les contient et utilisez l'outil de ligne de commande xperf:
xperf -on base+interrupt+dpc
Notez que vous devrez fermer Process Monitor ou toute autre application utilisant ETW ou vous obtiendrez l'erreur suivante: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Arrêter le traçage / sauvegarder le journal
xperf -d interrupt_trace.etl
Ouvrez la trace dans Windows Performance Analyzer
(partie de Windows Performance Toolkit); certains endroits mentionnent utiliser à la xperfview
place.
Développez Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, faites un clic droit etadd graph to analysis view
Cela a indiqué directement au conducteur en question. Dans ce cas, HDAudBus.sys utilise une quantité constante de 10,82% de mon processeur via des interruptions, ce qui est exactement ce que Process Explorer me montrait.
Si vous pouvez gérer des outils système de bas niveau;
Après avoir appris à utiliser xperf; check-out;
la source
Voici le meilleur article que j'ai trouvé sur la façon de procéder, avec des tutoriels, des captures d'écran et des liens de téléchargement vers les outils pertinents:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
la source
Jetez un coup d’œil à l’explorateur de processus Windows:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Cela devrait aider.
la source
LatencyMon et DPC Latency Checker sont deux excellents outils .
la source