J'ai un ordinateur portable avec un système Win 7 32 bits alimenté par un Pentium double cœur (c'est un ordinateur portable 2010). Parfois, cela fonctionne bien, mais il tourne généralement à 100% de charge CPU. Le processeur est consommé par deux processus svchost.exe (50% chacun). Pour autant que je comprends, il s'agit d'un hôte de service. Existe-t-il un moyen de savoir quel service est le coupable?
À noter: cela se produit même en mode sans échec.
Réponses:
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 savoir quel service consomme le CPU.
La procédure est la suivante:
Utilisez le Gestionnaire des tâches pour afficher tous les processus triés par CPU décroissant et marquez le PID des processus qui consomment le CPU
Dans une invite de commande (cmd), entrez la commande
Tasklist /svc /fi "IMAGENAME eq svchost.exe"
Les instances problématiques de svchost.exe peuvent maintenant être localisées par leur PID et à droite vous trouverez une liste des services système qu'ils hébergent
Pour chacun des noms de la liste, entrez la commande suivante dans une invite de commande (cmd) exécutée en tant qu'administrateur:
sc config <name> type= own
(notez l'espace entre les '=' et les 'own')
Redémarrer
Les services système que vous avez séparés s'exécuteront désormais chacun dans sa propre instance de svchost.exe et peuvent être vus dans le Gestionnaire des tâches dans l'onglet Processus. Vous pouvez cliquer avec le bouton droit sur une instance et sélectionner «Aller aux services» pour accéder directement au service, ou utiliser à nouveau la commande list de tâches.
Pour plus d'informations, consultez l'article Microsoft
Prise en main du dépannage de SVCHOST.EXE .
la source
Process Explorer vous facilite la tâche. J'ai confirmé que cela fonctionne avec Process Explorer v16.20 sur Windows 7 Professionnel 64 bits et Windows 10 Pro 64 bits.
svchost.exe
processus avec une valeur élevée (ou même juste mesurable / non vide) dans laCPU
colonne. Le tri par la colonneProcess
ouCPU
peut aider à cela.svchost.exe
processus et sélectionnezProperties...
.Threads
onglet. Tous les threads de ce processus seront affichés.CPU
colonne. Le tri parCPU
colonne peut vous y aider.Service
colonne affichera le nom du service dans lequel ce thread s'exécute.Si le nom du service ne vous est pas familier ...
Services
onglet. Tous les services qui s'exécutent dans ce processus seront affichés.Service
colonne de l'Services
onglet à la valeur de laService
colonne de l'Threads
onglet que vous avez localisé à l'étape 6.Display Name
colonne affichera le nom convivial du service. La description du service sélectionné apparaîtra sous la liste des services.la source
Vous pouvez utiliser le Gestionnaire des tâches . Il existe d'autres façons (ligne de commande, ou même écrire un programme en utilisant WinAPI ), mais je ne les discuterai pas ici. Avant d'aller plus loin, votre utilisateur doit disposer de privilèges administratifs.
Dans l' onglet Processus :
De retour à l' onglet Processus , cliquez sur l'en -tête de la colonne CPU afin que les processus soient ordonnés par leur consommation CPU (notez que les processus peuvent être affichés dans l'ordre croissant / décroissant - chaque clic sur CPU change l'ordre), cliquez jusqu'à ce que les 2 processus apparaissent en haut du tableau. Maintenant, vous pouvez voir leur ligne de commande (je ne sais pas, mais j'ai le sentiment que l'un d'eux est
netsvcs
(Services réseau)) ainsi que leurs PID.Ensuite, vous devez faire correspondre les 2 processus aux services. Pour cela vous pouvez soit:
EDIT0 : Mise à jour de la réponse pour fournir une approche plus simple (et plus logique), au lieu de me gratter le côté droit de la tête en utilisant celui de la main gauche , que j'ai initialement publié.
la source