web-dev-qa-db-fra.com

Comment diagnostiquer l'utilisation anormale de la CPU par svchost.exe?

J'ai un ordinateur portable avec un système Win 7 32 bits propulsé par un Pentium à double core (c'est un ordinateur portable 2010). Parfois, cela fonctionne bien, mais il est généralement inactif à 100% de la charge de la CPU. La CPU est consommée par deux processus Svchost.exe (50% chacun). Pour autant que je sache, c'est un hôte de service. Y a-t-il un moyen de savoir quel service est le coupable?

De note: cela se produit même en mode sans échec.

19
Violet Giraffe

Comme une instance de Svchost.exe héberge plusieurs services système, voici comment séparer les services, chacun à sa propre instance de Svchost.exe, afin de déterminer quel service consomme la CPU.

La procédure est la suivante:

  1. Utilisez le gestionnaire de tâches pour afficher tous les processus triés par le processeur décroissant et marquez le PID des processus qui consomment la CPU

  2. Dans une invite de commande (cmd) entrez la commande
    [.____] Tasklist /svc /fi "IMAGENAME eq svchost.exe"
    [.____] enter image description here

  3. Les instances problématiques de Svchost.exe peuvent maintenant être localisées par leur PID et sur la droite, vous trouverez une liste des services système qu'ils hébergent.

  4. Pour chacun des noms de la liste, entrez la commande suivante dans une invite de commande (CMD) qui est exécutée en tant qu'administrateur:
    [.____] sc config <name> type= own
    [.____] (Notez l'espace entre le "=" et "propre")

  5. Redémarrer

Les services système que vous avez séparés vont maintenant chacun exécuter dans sa propre instance de Svchost.exe et peut être vu dans Task Manager dans l'onglet Processes. Vous pouvez cliquer avec le bouton droit de la souris sur une instance et sélectionnez "Aller à Service (s)" pour accéder directement au service, ou utilisez à nouveau la commande de liste des tâches.

Pour plus d'informations, voir l'article Microsoft
[.____] Mise en route avec le dépannage Svchost.exe .

28
harrymc

Vous pouvez utiliser gestionnaire de tâches. Il existe d'autres moyens (ligne de commande, ou même écrire un programme à l'aide de :Winapi), mais je ne les discuterai pas ici. Avant d'aller plus loin, votre utilisateur devrait avoir des privilèges administratifs.

Sur la touche -processus:

  • Vérification Afficher les processus de tous les utilisateurs.
  • Cliquez avec le bouton droit de la souris sur les processus "En-tête de la table" (contenant des noms de colonne tels que nom d'image, PID , nom d'utilisateur, [~ # ~] cpu [~ # ~ ~], ...) et sélectionnez Sélectionnez les colonnes ... [.____]
    • Sur la boîte de dialogue qui apparaît, faites défiler vers le bas et assurez-vous de vérifier -ligne de commande et PID (identifiant de processus) puis appuyez sur [~ # ~ ~] OK [~ # ~].
  • Retour à l'onglet -processus, cliquez sur [~ # ~ # ~] cpu [~ # ~ ~] en-tête de colonne de sorte que les processus soient commandés par leur consommation de la CPU (note que le Les processus peuvent être affichés en ordre croissant/décroissant - chacun clic sur [~ # ~ ~] cpu [~ # ~] commutation des commandes), cliquez sur jusqu'à ce que les 2 processus apparaissent en haut de la table. Maintenant, vous pouvez voir leur ligne de commande (je ne sais pas mais j'ai l'impression que l'un d'entre eux est netsvcs (services de réseau)) et de leurs PID.

  • Ensuite, vous devez faire correspondre les 2 processus aux services. Pour cela, vous pouvez soit:

    • Faites un clic droit sur eux, puis Aller au service (s) .... Cela se déplacera à l'onglet Services, avec tout le service exécuté dans ce processus sélectionné (pour cette option, vous n'avez besoin de l'une des étapes précédentes :)).
    • Ouvrez le Services Snapin dans MMC. Lorsque le double clikc - ing sur un service (n'a de sens que de vérifier ceux qui fonctionnent), sous chemin d'accès à exécutable Vous pouvez voir leur ligne de commande que vous devriez faire le match.
  • Sur W1 Vous pouvez afficher les informations exactes dont vous avez besoin à partir de moniteur de ressources (vous pouvez le démarrer à partir de Task Manager, performance = onglet). Vous allez à CPU Onglet et les services et leur consommation de la CPU sont répertoriés.

Edit: Réponse mise à jour pour fournir une approche plus simple (et de la plus grande sensation), au lieu de gratter le côté de la tête droite à l'aide de ma main gauche Style One, que j'ai initialement affiché.

3
CristiFati