Eu tenho um laptop com um sistema Win 7 de 32 bits equipado com um Pentium de núcleo duplo (é um laptop de 2010). Às vezes, funciona bem, mas geralmente fica ocioso com 100% de carga da CPU. A CPU é consumida por dois processos svchost.exe (50% cada). Tanto quanto eu entendo, este é um host de serviço. Existe alguma maneira de descobrir qual serviço é o culpado?
Nota: isso acontece mesmo no modo de segurança.
Respostas:
Como uma instância do svchost.exe hospeda vários serviços do sistema, veja como separar os serviços, cada um com sua própria instância do svchost.exe, para descobrir qual serviço consome a CPU.
O procedimento é o seguinte:
Use o Gerenciador de tarefas para mostrar todos os processos classificados por CPU decrescente e marcar o PID dos processos que consomem a CPU
Em um prompt de comando (cmd), digite o comando
Tasklist /svc /fi "IMAGENAME eq svchost.exe"
As instâncias problemáticas do svchost.exe agora podem ser localizadas pelo respectivo PID e, à direita, você encontrará uma lista dos serviços do sistema que eles hospedam
Para cada um dos nomes da lista, digite o seguinte comando em um Prompt de Comando (cmd) que é Executar como administrador:
sc config <name> type= own
(Observe o espaço entre '=' e 'próprio')
Reiniciar
Os serviços do sistema que você separou agora serão executados em sua própria instância do svchost.exe e podem ser vistos no Gerenciador de Tarefas na guia Processos. Você pode clicar com o botão direito do mouse em uma instância e selecionar "Ir para o (s) Serviço (s)" para ir diretamente ao serviço ou usar novamente o comando tasklist.
Para obter mais informações, consulte o artigo da Microsoft
Introdução à solução de problemas do SVCHOST.EXE .
fonte
O Process Explorer facilita isso. Confirmei que isso funciona com o Process Explorer v16.20 no Windows 7 Professional de 64 bits e no Windows 10 Pro de 64 bits.
svchost.exe
processo com um valor alto (ou mesmo mensurável / não em branco) naCPU
coluna. A classificação pela colunaProcess
ouCPU
pode ajudar nisso.svchost.exe
processo e selecioneProperties...
.Threads
guia Todos os threads neste processo serão exibidos.CPU
coluna. A classificação pelaCPU
coluna pode ajudar nisso.Service
coluna mostrará o nome do serviço no qual esse encadeamento está sendo executado.Se o nome do serviço não lhe for familiar ...
Services
guia Todos os serviços executados nesse processo serão exibidos.Service
coluna naServices
guia ao valor daService
coluna naThreads
guia localizada na etapa 6.Display Name
coluna exibirá o nome amigável do serviço. A descrição do serviço selecionado aparecerá abaixo da lista de serviços.fonte
Você pode usar o Gerenciador de tarefas . Existem outras maneiras (linha de comando ou até mesmo escrever algum programa usando o WinAPI ), mas não vou discuti-las aqui. Antes de prosseguir, seu usuário deve ter privilégios administrativos.
Na guia Processos :
De volta à guia Processos , clique no cabeçalho da coluna CPU para que os processos sejam ordenados pelo consumo de CPU (observe que os processos podem ser exibidos em ordem crescente / decrescente - cada clique na CPU alterna os pedidos), clique até os 2 processos aparecem na parte superior da tabela. Agora você pode ver a linha de comando (não sei, mas sinto que um deles é
netsvcs
(Serviços de Rede)) e também os PIDs.Em seguida, você precisa associar os 2 processos aos serviços. Para isso, você pode:
EDIT0 : Resposta atualizada para fornecer uma abordagem mais simples (e fazendo muito mais sentido), em vez de coçar a cabeça direita usando o estilo esquerdo , que publiquei inicialmente.
fonte