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

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

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

Todos os aplicativos que estou executando são Skype, TeamSpeak e Chrome, então definitivamente não deveria consumir tanta 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 chega 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! Cumprimentos.

--ATUALIZAR--

Como o usuário abaixo postou uma ótima resposta, notei que o processo que está consumindo mais CPU do sistema se chama Arthurx.sys, simples google diz que é um driver TPLink (um adaptador wifi, comprei há 2 semanas!) drivers foi instalado a partir do Windows MSDN, mas também tentou instalar os drivers do CD anexado, mas não adiantou. Desde o início do sistema, ele está usando apenas 5% da CPU, mas após 2 a 4 horas de trabalho ele está crescendo e atingindo 40 a 60% do uso da CPU.

Nome do dispositivo:TPLink WN722N

Responder1

Introdução

O alto uso da CPU pelo processo "Sistema" muitas vezes pode ser causado por um problema de driver de hardware (bug, versão antiga, incompatibilidade, etc.).

O processo do sistema carrega (ou hospeda) vários drivers de hardware de diferentes fornecedores que exigem um nível mais alto de acesso à memória. É por isso que diagnosticar o culpado específico pode exigir um pouco de trabalho de detetive, conforme descrito abaixo.

Diagnosticando o problema

Para diagnosticar os problemas de uso da CPU, você deve usar o Rastreamento de Eventos para Windows (ETW) para capturar dados/perfil de amostragem de CPU.

Para capturar os dados,instale o kit de ferramentas de desempenho do Windows, que faz parte doSDK do Windows.

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 oSDK/WPT com compilação 15086.

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

Agora execute WPRUI.exe, selecione First Level, em Seleção de recursosutilização do CPUe clique emcomeçar.

insira a descrição da imagem aqui

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

Agoraanalise o arquivo ETL gerado com o Windows Performance Analyzerarrastando e soltando o CPU Usage (sampled)gráfico analysis panee ordenando as colunas como você vê na imagem:

insira a descrição da imagem aqui

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


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

insira a descrição da imagem aqui


Quando você vê chamadas comontoskrnl.exe!ViKeTrimWorkerThreadRoutine, ntoskrnl.exe!MmVerificadorTrimMemory, ntoskrnl.exe!VerificadorKeLeaveCriticalRegião, isso significa que você ativou o Verificador de driver. Isso também prejudica muito o desempenho e causa alto uso do SISTEMA.Desativar verificador de drivere reinicie.

insira a descrição da imagem aqui


Nesta demonstração, o driver iai2ce.sys(driver do controlador Intel Serial IO GPIO) causa isso:

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 Bitdefenderignis.sys

insira a descrição da imagem aqui


No exemplo a seguir, o uso da CPU é causado pelo driver de rede broadcombcmwl664.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 alto uso da CPU:

insira a descrição da imagem aqui

Não há uma maneira real de detectar qual processo está causando isso, mas 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ê aquelesntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUpchamadas

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 emMicrosoft > Windows > MemoryDiagnostic > RunFullMemoryDiagnostic.

insira a descrição da imagem aqui


Neste caso, o uso da CPU parece vir do Data DeduplicationRecurso ( 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 WIFIathrx.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

Portanto, entre em contato com sua 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

Alterando as portas USB 2.0 para velocidade 1.1ou conectar unidades USB a outras portas USB 2.0 ajudou alguns usuários.


Neste 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 do ntoskrnl.exe!KeReleaseSpinLock.

insira a descrição da imagem aqui

então um driver está usandoSpinLocksmuito fortemente. Desative alguns dispositivos/drivers até encontrar um que cause isso.


Neste caso, o uso da CPU é causado pelo driverL1C62x64.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 vir na pilha.


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

insira a descrição da imagem aqui

certifique-se de que seu arquivo hosts não seja muito grande para evitar esse uso.


Nesse caso, o uso da CPU vem SRTSP64.SYSda Symantec.

insira a descrição da imagem aqui

Atualize seu 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 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çãontoskrnl.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: esta rotina retorna informações sobre os arquivos de paginação atualmente ativos.

Desative o arquivo de paginação, reinicie e ative-o novamente e veja se isso resolve o problema. Além disso, removendo serviços Intel (por exemplo, serviço Intel Content Protection HECI)parece ter corrigido isso 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ê deveinstale o driver mais recente da Intelpara fixar isso.


O caso mais complicado de uso do SYSTEM é o uso do ACPI.sys na pilha de chamadas:

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 umtópico sysinternals, listei alguns conselhos:

  • certifique-se de que a CPU não superaqueça por causa da poeira na ventoinha da CPU
  • atualizar ou atualizar novamente o (mesmo) BIOS/UEFI
  • carregar configurações padrão de BIOS/UEFI
  • certifique-se de que a bateria não esteja danificada, remova a bateria do notebook ou desative a bateria no gerenciador de dispositivos.
  • mudar jumper no caddy HDDse você substituiu a unidade de DVD/Blue-Ray 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 Intel HD 630 causa o problema:

insira a descrição da imagem aqui

A solução éatualizar para drivercom versão de pelo menos .4590.


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

insira a descrição da imagem aqui

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


Se você vir um driver chamado risdxc64.sysna pilha de chamadas do SYSTEM que causa alto uso da CPU, atualize oControlador host Ricoh PCIe SDXC/MMCdriver ou desative o leitor de cartão SD no gerenciador de dispositivos se nenhuma atualização de driver corrigir o problema.

insira a descrição da imagem aqui

Este leitor de cartão SD parece estar integrado em muitos dispositivos Lenovo.


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

insira a descrição da imagem aqui

Aqui você pode ver um driver UDE.sys causando isso.

No centro de símbolos

insira a descrição da imagem aqui

Posso ver que ele pertence ao driver do modem e os dados PNP do rastreamento mostram Fibocom L850-GL(modem LTE) como dispositivo possível:

insira a descrição da imagem aqui

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


O usuário@fajarforneceu o seguinte caso:

insira a descrição da imagem aqui

Aqui o uso da CPU é pequeno, mas se você alterar a visualização para uso de DPC/ISR

insira a descrição da imagem aqui

você pode ver que o driver avgNetHub.sys causa muito uso de DPC

insira a descrição da imagem aqui

O nome indica que este driver faz parte do software antivírus AVG. Portanto, atualize o software ou remova-o se notar isso em seu rastreamento.


Responder2

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 comoExplorador de processos.

Baixe e execute-o, selecione o processo do sistema, clique com o botão direito e selecione Propriedades:

insira a descrição da imagem aqui

Mude 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 uso excessivo da CPU, a partir do qual você poderá tentar diagnosticá-lo.

No entanto, como outros disseram nos comentários, você realmente precisa se afastar das versões Preview o mais rápido possível!

Responder3

Uma observação sobre o carregamento de símbolos de depuração para adicionarExcelente resposta de magicandre1981: se o carregamento dos símbolos no Windows Performance Analyzer funcionar corretamente, após marcarTraçar > Carregar Símbolosvocê deverá ver uma barra de progresso na parte superior comCarregando símbolosque mostra os nomes dos arquivos ao lado e leva vários minutos para ser concluído. Além disso, você deverá ver muitas linhas como a 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 nenhum desses, o carregamento dos símbolos de depuração provavelmente não funcionou e você não conseguirá interpretar adequadamente o seu rastreamento.

No meu caso, carregar inicialmente símbolos de depuração não funcionou. Eu consertei seguindoestas instruções:

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

    Isso é fácil em versões x86 do Windows. Em compilações x64, você pode verificar no Gerenciador de Tarefas a tag *32. Se não estiver lá, você está executando a versão x64.

    Observe que o WPT sempre é instalado em Arquivos de Programas (x86), independentemente da arquitetura.

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

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

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

Responder4

Responderadicionado por@magicandre1981é a chave para resolver qualquer problema. Meu caso não estava listado lá, mas encontrei uma palavra semelhante na pilha descrita na The most complicated case of SYSTEM usage is ACPI.sys usage in the callstack:seção. No meu caso, a instalação Intel Rapid Storagedo driver foi ajudada. Eu não esperava isso, pois todos estavam trabalhando há muito tempo sem esse driver e sem problemas de CPU. Coloquei minha pilha aqui, provavelmente alguém encontrará esta resposta por palavras-chave semelhantes.

Line #, Process, Stack, Count, Weight (in view) (ms), TimeStamp (s), % Weight
3, , [Root], 45104, 45,300.439000, , 16.21
4, ,   ntoskrnl.exe!KiStartSystemThread, 45104, 45,300.439000, , 16.21
5, ,   ntoskrnl.exe!PspSystemThreadStartup, 45104, 45,300.439000, , 16.21
6, ,   |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread, 38830, 38,997.540000, , 13.95
7, ,   |    |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry, 38708, 38,874.943400, , 13.91
8, ,   |    |    |- ntoskrnl.exe!memcpy, 33888, 34,032.390100, , 12.18
9, ,   |    |    |    |- ntoskrnl.exe!memcpy<itself>, 33655, 33,795.069100, , 12.09
10, ,   |    |    |    |- ntoskrnl.exe!KiDpcInterrupt, 228, 232.331300, , 0.08
11, ,   |    |    |    |- ntoskrnl.exe!KiInterruptDispatchNoLockNoEtw, 4, 3.989700, , 0.00
12, ,   |    |    |    |- ntoskrnl.exe!KiInterruptDispatch, 1, 1.000000, , 0.00
13, ,   |    |    |- ntoskrnl.exe!RtlCompressBuffer, 2571, 2,585.541600, , 0.93
14, ,   |    |    |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessReadyQueue, 2015, 2,022.554900, , 0.72
15, ,   |    |    |- ntoskrnl.exe!MmBuildMdlForNonPagedPool, 129, 129.294600, , 0.05
16, ,   |    |    |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry<itself>, 63, 62.901700, , 0.02
17, ,   |    |    |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 31, 31.208200, , 0.01
18, ,   |    |    |- ntoskrnl.exe!MetroHash64::Hash, 10, 10.033100, , 0.00
19, ,   |    |    |- ntoskrnl.exe!KiDpcInterrupt, 1, 1.019200, , 0.00
20, ,   |    |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread<itself>, 78, 78.477100, , 0.03
21, ,   |    |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 39, 39.068100, , 0.01
22, ,   |    |- ntoskrnl.exe!KeWaitForSingleObject, 5, 5.051400, , 0.00
23, ,   |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStWorkerThread, 5420, 5,445.923200, , 1.95
24, ,   |- ntoskrnl.exe!SmKmStoreHelperWorker, 495, 496.265200, , 0.18
25, ,   |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStReadThread, 359, 360.710600, , 0.13
26, , n/a, 16760, 16,773.871200, , 6.00

Atualizar:Infelizmente o problema voltou. Depois de reiniciar o PC funciona bem por algum tempo, mas o mesmo vazamento de CPU aparece com a mesma pilha

informação relacionada