Como descobrir o que faz o WMI Provider Host usar tanta CPU
O WMI Provider Host no Gerenciador de Tarefas é o WmiPrvSE.exe, o processo do Windows que responde às perguntas que os programas fazem sobre o sistema: quais discos existem, quanta bateria resta, quais serviços estão em execução. Raramente ele usa CPU por motivos próprios. Quando fica entre 10 e 30 por cento por muito tempo, algum outro programa está perguntando algo com frequência demais, ou algo caro, então a correção é achar esse programa e não o host do provedor em si.
O que ele está fazendo
O Windows Management Instrumentation (WMI) é a forma como scripts, ferramentas de monitoramento, aplicativos complementares de drivers e o próprio Windows leem informações do sistema. As solicitações são atendidas por provedores, e os provedores rodam dentro de um ou mais processos WmiPrvSE.exe, por isso o Gerenciador de Tarefas pode mostrar várias linhas de WMI Provider Host ao mesmo tempo. O guia da Microsoft para solucionar CPU alta do WMI diz o mesmo: a CPU do host do provedor reflete as consultas que os clientes enviam, e o trabalho é identificar qual cliente e qual provedor.
| O que você vê | Causa provável |
|---|---|
| Um pico curto ao entrar, depois calma | Aplicativos de inicialização e o Windows lendo o inventário uma vez |
| Carga constante a cada poucos segundos, o dia todo | Uma ferramenta consultando o WMI em loop: um monitor, um utilitário do fabricante, uma sobreposição de jogos |
| CPU alta depois de instalar um aplicativo | O serviço desse aplicativo ou o provedor WMI dele |
| Várias linhas de WMI Provider Host, uma ocupada | Um provedor está lento; os outros estão bem |
Encontre o programa que está perguntando
Abra o Visualizador de Eventos (digite eventvwr no Iniciar) e vá a Logs de Aplicativos e Serviços › Microsoft › Windows › WMI-Activity › Operational. Erros com a ID de evento 5858 nomeiam a consulta que falhou e o ClientProcessId que a enviou. A ID de evento 5857 registra qual provedor foi carregado e a ID do processo do WmiPrvSE.exe que o hospeda.
Depois abra o Gerenciador de Tarefas com Ctrl + Shift + Esc, vá à guia Detalhes e ordene por PID. Relacione o ClientProcessId a um nome, e o PID do WMI Provider Host ocupado ao provedor do evento 5857. Se um cliente aparece em centenas de eventos em poucos minutos, esse é o programa que você deve tratar.
Se o log não mostrar nada, uma consulta correta que é só frequente não deixa erro. Nesse caso, feche os aplicativos candidatos um de cada vez, começando por monitores de hardware, utilitários de RGB e de ventilador, assistentes de atualização do fabricante e qualquer coisa instalada pouco antes de o problema começar, e veja se o host do provedor se acalma em um minuto.
Resolva na origem
- Atualize ou desinstale o aplicativo que faz as consultas. Muitas ferramentas de monitoramento têm um ajuste de intervalo de atualização; uma vez por segundo é comum e raramente necessário.
- Se o provedor ocupado pertence ao software de um fabricante de hardware, atualize esse software ou o pacote de drivers dele; versões antigas de alguns deles são conhecidas pelo uso intenso do WMI.
- Reinicie uma vez depois de remover a causa. Os processos do host do provedor iniciam de novo sob demanda, então não há nada para limpar à mão.
O que não fazer
- Não encerre o WMI Provider Host repetidamente. O Windows o inicia de novo assim que chega a próxima consulta, e o programa que perguntou recebe um erro que pode tentar de novo com mais insistência.
- Não desabilite o serviço Instrumentação de Gerenciamento do Windows. As páginas de Configurações, o Windows Update, o Defender e as ferramentas de muitos drivers dependem dele.
- Não redefina nem reconstrua o repositório do WMI (
winmgmt /resetrepository) por causa de CPU alta. É um reparo para um repositório danificado e pode remover provedores que aplicativos registraram; a Microsoft o trata como último passo para outro problema.
Onde o Mole entra
Na página Status, o Mole para Windows mostra cada linha de WMI Provider Host com CPU, memória e E/S. Escolher Por que está em execução? no menu de uma linha mostra o arquivo do programa em C:\Windows\System32\wbem e qual processo o iniciou, e como ele roda a partir da pasta do Windows, o Mole não oferece Encerrar para ele. O próprio Mole é um cliente do WMI em dois lugares: enquanto o notebook está carregando, o Status pede o tempo até a carga completa da bateria no máximo uma vez por minuto, e o Diagnóstico lê a integridade do disco quando você o executa. Nenhum dos dois roda em loop. Para outros nomes ocupados, veja Processos do Windows explicados, e para CPU em geral, Uso alto de CPU no Windows.
Perguntas frequentes
O WMI Provider Host é um vírus?
O WmiPrvSE.exe genuíno fica em C:\Windows\System32\wbem. Um arquivo com esse nome em qualquer outro lugar deve ser verificado com a Segurança do Windows.
Por que o WMI Provider Host usa muita CPU?
Outro programa está consultando o WMI com frequência demais ou pedindo dados caros. O log Operational do WMI-Activity no Visualizador de Eventos nomeia a ID do processo cliente por trás das consultas que falham.
Posso encerrar ou desabilitar o WMI Provider Host?
Encerrá-lo só ajuda por segundos, porque o Windows o reinicia na próxima consulta. Desabilitar o serviço WMI quebra as configurações, as atualizações e as ferramentas de drivers.
Por que há vários processos WMI Provider Host?
Os provedores rodam em processos host separados, então um provedor lento não segura os outros. Em geral só um deles está ocupado.