Comment puis-je dépanner un temps de noyau élevé?

Réponses:

13

L'outil définitif pour découvrir exactement ce qui utilise l'heure du noyau est kernrate.exe. Il est livré avec le SDK Windows / WDK Visual Studio, etc.

De plus, Xperf peut effectuer le même sondage / traçage du noyau ... et est probablement beaucoup plus facile à utiliser. Kernrate était une sorte de bête.

Ryan Ries
la source
11

C'est probablement plus facile que vous ne le pensez. Si vous avez une utilisation système élevée et cohérente, Process Explorer fournit un onglet Threads que vous pouvez utiliser pour le processus système (id de processus: 4). Le module et la fonction incriminés doivent être affichés.

entrez la description de l'image ici

Si vous avez besoin d'un outil formel pour collecter les données empiriques pour analyser le problème, vous pouvez utiliser l'enregistreur de performances Windows / l'analyseur de performances Windows, qui fait partie de la boîte à outils des performances Windows.

https://blogs.technet.com/b/yongrhee/archive/2012/11/23/installing-the-windows-performance-toolkit-v5-0-wprui-wpr-xperf.aspx

https://blogs.technet.com/b/yongrhee/archive/2012/11/23/wpr-xperf-capture-high-cpu-disk-io-file-registry-networking-private-bytes-virtual-bytes- pool-paginé-pool-non-paginé et-ou-application-lenteur.aspx

Greg Askew
la source
2
Cela pourrait être une victoire facile, mais souvent le vrai coupable se cachera derrière des fils de travail génériques, auquel cas cela ne vous en dira pas beaucoup. Même Russinovich a recours à Kernrate dans son article de blog ici: blogs.technet.com/b/markrussinovich/archive/2008/04/07/…
Ryan Ries
6

J'ai moi-même eu le problème avec des temps de noyau élevés consommant 50% de CPU, tandis que d'autres processus représentaient les 40% restants. Le problème est dû à une désactivation et à une désinstallation incorrectes de Trend AV.

Même si les services ont été arrêtés et l'analyse en temps réel désactivée, les mini-filtres du noyau semblent être activés. J'ai déduit qu'ils consommaient du temps de noyau après avoir correctement installé le logiciel et j'ai observé que le temps de noyau était réduit à 1 / 10e de la charge précédente.

Pour afficher la liste des filtres sur votre système, tapez

C:\Users\TEMP>fltmc filters
Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
TmPreFilter                             3       328500         0
luafv                                   1       135000         0

Microsoft a une liste de filtres tiers disponibles ici . Selon cette feuille de calcul, TmPreFilter est Trend Micro, un scanner AV.

goodguys_activate
la source
5
Awww je suis vraiment déçu par cette réponse. Après la construction, je m'attendais à un exposé magnifiquement conçu sur la façon de dépanner le temps de noyau élevé. Au lieu de cela, vous sautez tous les bits intéressants (le comment) et nous en présentez un que vous avez fait plus tôt :( Quelles mesures avez-vous prises pour arriver à cette conclusion sans eux, vous ne répondez pas vraiment à la question posée.
user9517
@Iain Haha, merci. Mon objectif ici était de partager les informations que je connaissais dans le format hybride blog-wiki SE (je n'ai pas de blog ou je ne connais pas de wiki approprié). Je ne sais vraiment pas comment dépanner le temps du noyau, mais j'ai découvert quelque chose qui fonctionnait et je voulais le partager. Je peux certainement répondre aux questions concernant le courrier électronique, la sécurité et certains développements. C'est une réponse partielle
goodguys_activate
3
Bonne réponse, je ne connaissais pas fltmc.
jftuga
-1

Ayez le nez en utilisant Process Monitor et DiskMon (Microsoft SysInternals) pour voir ce que fait la machine. Un bon coupable commun, à part les pilotes de périphériques douteux, est une bonne vieille pagination.

Simon Catlin
la source