Solucionar problemas de alto uso da CPU pelo processo "Sistema"

99

Percebi que, há algum tempo, meu sistema está congelando e provavelmente é causado pelo alto uso da CPU causado pelo processo do sistema.

Todos os aplicativos que estou executando são o Skype, TeamSpeak e Chrome, portanto, ele definitivamente não deve consumir essa quantidade de CPU.

Você pode ver o problema em si e os processos em execução na captura de tela abaixo:

insira a descrição da imagem aqui

Às vezes, o uso da CPU está chegando a 90%, mas o uso médio é de 40 a 65%.

Parâmetros do meu PC:

  • Windows 8 (visualização do cliente)
  • Intel Core i3 - 2350M
  • 8 GB de RAM

Eu apreciaria qualquer tentativa de ajuda! Saudações.

--ATUALIZAR--

Como o usuário abaixo postou uma ótima resposta, notei que o processo que consome mais CPU no sistema é chamado Arthurx.sys, o google simples informa que é um driver TPLink (um adaptador wifi que comprei há 2 semanas!) Drivers foi instalado a partir do Windows MSDN, mas também tentou instalar os drivers do CD anexado, mas isso não ajuda. Desde o início do sistema, ele usa apenas 5% da CPU, mas após 2-4 horas de trabalho, ele cresce e atinge 40-60% do uso da CPU.

Nome do dispositivo: TPLink WN722N

Scott
fonte
5
Ponto de ordem, se você estiver executando a visualização do cliente, tudo não está atualizado ... Você está executando a visualização do cliente.
quer
@ Everett Sim, provavelmente você está certo ... mas ainda assim não deve acontecer, mesmo que seja uma prévia do cliente (ou versão).
Scott
4
@ Scott Sim, esse tipo de coisa deve acontecer na visualização do cliente. Quero dizer, é claro que é melhor que esses erros não existam, mas essa é uma das coisas que uma pré-visualização deve fazer. É uma chance para os usuários verem novos recursos e elementos da interface do usuário um pouco mais cedo e verificar a compatibilidade do aplicativo, mas também uma chance para as equipes de desenvolvimento obterem feedback e encontrarem erros de um público mais amplo. O sistema principal ainda não está pronto para uso em produção . Ele não se destina ao uso como seu sistema principal, porque não está totalmente pronto ou depurado. Se fosse, eles iriam para a RTM.
Joel Coehoorn
1
use xperf para rastreá-lo. Mas, como outros usuários disseram, pare de usar o CP. Todas as versões anteriores ao lançamento expiram em 2 semanas!
magicandre1981
1
A única maneira de ajudá-lo é se você verificar que esse problema existe na versão RTM do Windows 8. Você não pode esperar que alguém o ajude com problemas existentes em uma versão de visualização. Fui em frente e atualizei as tags para refletir seu uso de uma versão prévia.
Ramhound

Respostas:

91

Isso pode ser causado por um driver com defeito ou outro módulo carregado pelo sistema. Para examinar o processo do sistema, você pode usar uma ferramenta como o Process Explorer .

Faça o download e execute-o, selecione o processo do sistema, clique com o botão direito do mouse e selecione Propriedades:

insira a descrição da imagem aqui

Alterne para a guia Threads (ignore a caixa de diálogo que menciona símbolos):

insira a descrição da imagem aqui

Isso mostrará qual arquivo está usando o uso excessivo da CPU, a partir do qual você pode tentar diagnosticá-lo.

Como outros já disseram nos comentários, você realmente precisa se afastar das versões de visualização o mais rápido possível!

Graham Wager
fonte
Obrigado pela sua resposta. Por favor, veja minha pergunta atualizada.
Scott Scott
2
@ Scott notei que você está atualizando agora; se esse problema ainda não for resolvido, o TPLink terá um driver beta do Windows 8 disponível no site, o que pode ajudar. Pode ser encontrado aqui: tp-link.com/en/support/download/…
Graham Wager
2
Parece que risdxc64.sys é um suspeito comum nos laptops Thinkpad, que é o driver para o leitor de cartão, veja, por exemplo, aqui: forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/… - resolvi-o reinstalando o mais recente one on win 10
patrickf 7/08/2015
Eu tive um problema semelhante no Windows 10. Para mim, era o avc3.sys que estava usando muito CPU. Acontece que faz parte do Bitdefender Antivirus Free.
21315 Bruno
2
@ Legends você usou a ferramenta errada. ProcExp mostra uma imagem que não é tão útil. Eu escrevi uma resposta sobre o Windows Performance Toolkit para mostrá-lo em detalhes como para analisar o uso da CPU
magicandre1981
90

Para diagnosticar os problemas de uso da CPU, use o ETW (Rastreamento de eventos para Windows) para capturar dados / perfil de amostragem da CPU.

Para capturar os dados, instale o Windows Performance Toolkit , que faz parte do Windows SDK .

O Windows 10 WPT pode ser usado no Windows 8 / Server 2012, Windows 8.1 / Server 2012R2 e Windows 10 / Server 2016. Se você ainda usa o Windows 7, use o SDK / WPT com a Build 15086 .

insira a descrição da imagem aqui (todas as outras entradas podem ser desmarcadas)

Agora execute WPRUI.exe, selecione First Level, em Recurso, selecione Uso da CPU e clique em Iniciar .

insira a descrição da imagem aqui

Agora capture 1 minuto do uso da CPU. Após 1 minuto, clique em Salvar .

Agora analise o arquivo ETL gerado com o Windows Performance Analyzer , arrastando e soltando o CPU Usage (sampled)gráfico analysis panee ordenando as colunas, como você vê na figura:

insira a descrição da imagem aqui

Dentro do WPA, carregue os símbolos de depuração e expanda Pilha do processo do SISTEMA. Nesta demonstração, o uso da CPU vem do driver nVIDIA.


Na demonstração a seguir, o uso da CPU vem do driver Realtek NIC:

insira a descrição da imagem aqui


Quando você vê chamadas como ntoskrnl.exe! Veja KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Verificador KeLeaveCriticalRegion , isso significa que você tem o Verificador de Driver ativado. Isso também prejudica muito o desempenho e causa alto uso do SISTEMA. Desative o Verificador de Driver e reinicie.

insira a descrição da imagem aqui


Nesta demonstração, o driver iai2ce.sys( driver do controlador Intel Serial IO GPIO) faz com que:

insira a descrição da imagem aqui


Neste exemplo, o uso da CPU vem do arquivo rtsuvc.sysque parece ser oRealtek UVC webcam Driver

insira a descrição da imagem aqui


Esta demonstração mostra que o driver Bitdefender ignis.sys

insira a descrição da imagem aqui


No exemplo a seguir, o uso da CPU é registrado pelo driver de rede broadcom bcmwl664.sys

insira a descrição da imagem aqui


Quando você vê ntoskrnl.exe!MiZeroWorkerPagescomo causa, é mais complicado. Isso significa que a função do kernel que zera a memória antes que ela possa ser usada novamente causa o alto uso da CPU:

insira a descrição da imagem aqui

Não existe uma maneira real de detectar qual processo o causa, mas eu sei que o Chrome pode causar isso se você tiver a aceleração de hardware ativada no Chrome. Portanto, se você vir isso e usar o Chrome, desative a aceleração de hardware no Chrome.


Quando você vê esses ntoskrnl.exe! RtlpGenericRandomPatternWorker, ntoskrnl.exe! RtlpTestMemoryRandomUp chamadas

insira a descrição da imagem aqui

o uso da CPU vem do Kernel para testar problemas de memória (memtest). Esse uso é acionado por meio da tarefa de manutenção ociosa do Windows 8.1 / 10. Você pode usar o Agendador de tarefas para desativar a tarefa ociosa.

insira a descrição da imagem aqui

No Windows 10, a tarefa é chamada RunFullMemoryDiagnostics em Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic .

insira a descrição da imagem aqui


Nesse caso, o uso da CPU parece vir do Data DeduplicationFeature ( dedup.sys!DdpPostCreate) do Windows Server:

insira a descrição da imagem aqui


Nesta demonstração, o uso da CPU é causado pelo driver da placa WIFI athrx.sys

insira a descrição da imagem aqui

Procure uma atualização de driver se você vir isso.


Na demonstração a seguir, um driver citrix está envolvido:

insira a descrição da imagem aqui

Entre em contato com sua equipe de TI para saber como resolver problemas da Citrix.


Nesta demonstração, a função usbhub.sys!UsbhPortRecyclecausa o uso da CPU:

insira a descrição da imagem aqui

Alterar as portas USB2.0 para velocidade 1.1 ou conectar unidades USB a outras portas USB 2.0 ajudaram alguns usuários.


Nesse caso, uma pequena quantidade de uso do SYSTEM vem do driver Acronis tdrpm251.sys:

insira a descrição da imagem aqui


Nesta demonstração, o uso da CPU ntoskrnl.exe!KeAcquireSpinLockRaiseToDpce ntoskrnl.exe!KeReleaseSpinLock.

insira a descrição da imagem aqui

portanto, um driver está usando muito os SpinLocks . Desative alguns dispositivos / drivers até encontrar um que o cause.


Nesse caso, o uso da CPU é causado pelo driver L1C62x64.sys

insira a descrição da imagem aqui

Este é o qualcomm atheros AR8171/8175 PCI-E gigabit Ethernetmotorista. Portanto, atualize o driver se você o encontrar na pilha.


Aqui, o uso da CPU vem da verificação do arquivo host (netbt.sys! DelayedScanLmHostFile)

insira a descrição da imagem aqui

verifique se o arquivo hosts não é muito grande para evitar esse uso.


Nesse caso, o uso da CPU é proveniente SRTSP64.SYSda symantec.

insira a descrição da imagem aqui

Atualize o produto symantec usado para a versão mais recente.


Aqui, o uso da CPU vem do driver AMD GPU (atikmdag.sys)

insira a descrição da imagem aqui

se você vir isso, acesse o site da AMD e obtenha o driver mais recente para sua placa AMD.


Aqui, os drivers TMXPFlt.sys e VsapiNt.sys causam o alto uso da CPU.

insira a descrição da imagem aqui

Pelo que vejo, esses arquivos fazem parte do pacote Trend Micro AV. Atualize a ferramenta ou remova-a.


Neste exemplo, o uso da CPU vem da função ntoskrnl.exe!MmGetPageFileInformation

insira a descrição da imagem aqui

Esta função obtém informações sobre o arquivo de paginação.

Descrição da rotina: essa rotina retorna informações sobre os arquivos de paginação ativos no momento.

Desative o arquivo de paginação, reinicie e ative-o novamente e veja se isso o corrige. Além disso, a remoção dos serviços Intel (por exemplo, Serviço Intel Content Protection HECI) parece corrigi -lo para um usuário .


Aqui, você pode ver que o driver Netwtw04.sys( driver Intel Wifi) chama a função flushCompleteAllPendingFlushRequestse isso causa um alto uso da CPU.

insira a descrição da imagem aqui

Como os símbolos de depuração são carregados, o driver da caixa de entrada do Windows é usado. Somente aqui podemos obter símbolos de depuração para ver a pilha de chamadas com o nome da função flushCompleteAllPendingFlushRequests.

Aqui, você deve instalar o driver mais recente da Intel para corrigi-lo.


O caso mais complicado do uso do SYSTEM é o uso do ACPI.sys no callstack:

Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , ,   |    |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , ,   |    |    ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , ,   |    |    ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , ,   |    |    ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , ,   |    |    ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , ,   |    |    ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , ,   |    |    ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , ,   |    |    ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , ,   |    |    ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , ,   |    |    |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , ,   |    |    |    |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , ,   |    |    |    |    |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , ,   |    |    |    |    |    ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , ,   |    |    |    |    |    |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , ,   |    |    |    |    |    |    |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48

isso é extremamente difícil de depurar. Em um tópico sysinternals , listei alguns conselhos:

  • verifique se a CPU não superaquece devido a poeira no ventilador da CPU
  • atualizar ou atualizar novamente o (mesmo) BIOS / UEFI
  • carregar configurações padrão de BIOS / UEFI
  • verifique se a bateria não está danificada, remova a bateria do notebook ou desative a bateria no gerenciador de dispositivos.
  • mude o jumper no HDD caddy se você substituiu o DVD / Blue-Ray Drive por um Caddy para instalar um SSD próximo ao seu HDD antigo

insira a descrição da imagem aqui


Na demonstração a seguir, o driver Intel HD igdkmd64.sysna versão .4574 para o Intel HD 630 causa o problema:

insira a descrição da imagem aqui

A solução é atualizar para o driver com a versão de pelo menos 0,4590.


No caso a seguir, o uso da CPU do processo SYSTEM é causado pelo driver stdriverx64.sys

insira a descrição da imagem aqui

Este parece ser um driver de streaming de áudio . Portanto, atualize este software / driver se você vir isso no WPA.


Se você risdxc64.sysvir um driver chamado na pilha de chamadas do SYSTEM que causa o alto uso da CPU, atualize o driver Ricoh PCIe SDXC / MMC Host Controller ou desative o leitor de cartão SD no gerenciador de dispositivos se nenhuma atualização do driver o corrigir.

insira a descrição da imagem aqui

Esse leitor de cartão SD parece estar embutido em muitos dispositivos Lenovo.


O usuário @stevemidgley mostrou um novo problema de maior uso da CPU com Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk

insira a descrição da imagem aqui

Aqui você pode ver um driver UDE.sys causando-o.

No hub de símbolo

insira a descrição da imagem aqui

Eu posso ver que ele pertence ao driver do modem e aos dados PNP dos programas de rastreamento Fibocom L850-GL(modem LTE) como possível dispositivo:

insira a descrição da imagem aqui

E a solução é desativar o modem e o dispositivo composto USB no gerenciador de dispositivos.


magicandre1981
fonte
6
Agradável!!! +1 .... Para shizzle
Pimp Juice IT
1
@stevemidgley FxUsbPipeRequestWorkItemThunk processa dados. Expanda a pilha mais. O USB Composite Device pode ser um driver de smartphone quando você conecta telefones para transferir dados,
magicandre1981 23/09
1
@stevemidgley habilite o dispositivo USB e capture um rastreio, preciso de um arquivo ETL para ver mais detalhes.
magicandre1981 24/09
1
@stevemidgley que são os dados brutos do USB, preciso do rastreamento de uso da CPU da minha resposta acima.
magicandre1981 26/09
1
@stevemidgley ok, parece que o driver UDE.sys o causa. E pelo que vejo, ele pertence ao Fibocom L850-GL, que é o seu módulo LTE.
magicandre1981 27/09
4

Uma observação sobre o carregamento de símbolos de depuração para adicionar à excelente resposta de magicandre1981 : se o carregamento dos símbolos no Windows Performance Analyzer funcionar corretamente, depois de marcar Trace> Load Symbols, você verá uma barra de progresso na parte superior com Loading symbols que mostra os nomes dos arquivos ao lado e leva alguns minutos para concluir. Além disso, você deve ver muitas linhas como as abaixo no console de diagnóstico:

SYMSRV:  File: Accessibility.ni.pdb

SYMSRV:  Notifies the client application that a proxy has been detected.
SYMSRV:  Connecting to the Server: http://msdl.microsoft.com/download/symbols.
SYMSRV:  Successfully connected to the Server.
SYMSRV:  Sending the information request to the server.
SYMSRV:  Successfully sent the information request to the server.
SYMSRV:  Waiting for the server to respond to a request.
SYMSRV:  Successfully received a response from the server.
SYMSRV:  Closing the connection to the Server.
SYMSRV:  Successfully closed the connection to the Server.
SYMSRV:  Get File Path: /download/symbols/Accessibility.ni.pdb/7B46178957827CDAB7EE4C86EDEE1DAE1/Accessibility.ni.pdb

Se você não vir um desses, o carregamento de símbolos de depuração provavelmente não funcionou e você não poderá interpretar corretamente seu rastreamento.

No meu caso, carregar símbolos de depuração inicialmente não funcionou. Corrigi-o seguindo estas instruções :

  1. Descubra se você está usando a versão x86 ou x64 do Windows Performance Toolkit.

    Isso é fácil nas versões x86 do Windows. Nas versões x64, você pode verificar o Gerenciador de tarefas quanto à marca * 32. Se não estiver lá, você está executando a versão x64.

    Observe que o WPT sempre instala nos Arquivos de Programas (x86), independentemente da arquitetura.

  2. Copie os arquivos dbghelp.dlle symsrv.dlldo diretório correto do depurador para o diretório do Windows Performance Toolkit. No meu sistema, os diretórios relevantes são:

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 e C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

  3. Reinicie o Windows Performance Analyzer para que a versão correta do dbghelp.dll seja selecionada.

AronVanAmmers
fonte
2
você deve adicionar isso à minha resposta como uma edição. isto não é uma resposta real
magicandre1981
0

Primeiro, a revisão e as informações fornecidas são muito informativas; no entanto, você pode descobrir isso com muito menos inteligência! Eu simplesmente usei o MSCOFIG.EXE e uma pesquisa binária para isolar o serviço incorreto. Eu descobri que muitos problemas como esse são causados ​​pelo software Intel. Começo desativando qualquer serviço que não tenha um nome de empresa. Então começo os serviços da Intel. Em seguida, a pesquisa binária completa. Geralmente, leva uma hora no máximo para corrigir o problema no PC de alguém. A Intel nunca foi uma boa empresa de computadores, e seu software demonstra isso. Vamos ser sinceros: a arquitetura Pentium tinha uma década quando foi lançada. Quem teria construído uma arquitetura de computador com memória paginada nos dias do VAX? Bem, não vou aborrecê-lo com a história. Não que eu também seja fã da AMD ou da Microsoft. Talvez algum dia nós

Leonard Umina
fonte
Você percebe que o VAX usa memória paginada, certo? E por que você não usaria memória paginada hoje?
Jamie Hanrahan
-1

Eu tive o mesmo problema, ele desapareceu quando removi um dos módulos de RAM. Parece que estava com defeito. Executando o Windows 7 de 32 bits.

Cosmin
fonte