Windows 10 Memory Leak

2

Eu tive um problema de vazamento de memória com o Windows 10 por cerca de um ano, mas realmente quero consertar isso agora, pois está tendo um impacto considerável no meu trabalho.

Como você pode ver na figura abaixo, eu tenho 8GB de RAM. 92% estão em uso, embora os aplicativos não excedam 1GB.

Eu atualizei do Windows 7 Pro 64-bit para o Windows 10 no ano passado.

Peça mais detalhes, não sei mais o que fornecer. Não sei o que poderia estar causando isso.

    
por Shyy Guy 26.12.2016 / 19:56

1 resposta

9

1 grande parte do seu uso de memória alta (2 GB) vem de um alto uso de Tabela de páginas .

Paraverquaisprocessosousam,instaleoWindowsPerformanceToolkitque faz parte do Windows 10 SDK , abra um prompt de comando como admin e execute este comando:

wpr.exe -start ReferenceSet -filemode && timeout 5 && wpr.exe -stop C:\MemUsage.etl

Abra o MemUsage.etl com o Windows Performance Analyzer (WPA.exe), expanda a entrada de memória

arrasteesolteográficoResidentSetdalistadegráficosdaesquerdaparaopaineldeanálise:

Agora,movaacolunaPageCategoryparaoladoesquerdoeexpandaaPageTableentry:

Aquivocêvêosprocessosquetêmousodealtapagetable.Nositecorreto(depoisdalinhaazul),vocêvêousodamemóriadatabeladepáginasemMBparacadaprocesso.

Alémdisso,ousocombinado(não)dopoolpaginadoédeaproximadamente2GB.

Instale o WDK , execute poolmon ( C:\Program Files (x86)\Windows Kits\Tools\x64\poolmon.exe ), classifique os dados por meio de P após o tipo de conjunto, de forma que o paginado não paginado / da próxima vez esteja no topo e através de B depois dos bytes, para ver a tag que mais utiliza a memória.

Agora veja qual pooltag usa a maior parte da memória, como mostrado aqui:

Agoraabraumpromptdocmdeexecuteocomandofindstr.Parafazerisso,abraopromptdocmdedigite"cd C: \ Windows \ System32 \ drivers", sem aspas. Em seguida, digite "findstr / s __ . ", onde __ é a tag (nome mais à esquerda em poolmon). Faça isso para ver qual driver usa essa tag:

Agora,váparaapastadedrivers(C:\Windows\System32\drivers)ecliquecomobotãodireitodomousenodriveremquestão(intmsd.sysnoexemplodeimagemacima).CliqueemPropriedades,váparaaguiadetailsparaencontraronomedoproduto.Procureumaatualizaçãoparaesseproduto.

Corrigirosdoisproblemaspodelevarcercade4GBdevolta.

Combasenasuacapturadetelaemstackoverflow,4tags(VoSM,FILE,NtfxeProc)quepertencemàsfunçõesdoWindows.

Copie/coleestetextoemumnovoarquivotxterenomeie-oparaPoolTagLeak.wprp

<?xmlversion="1.0" encoding="utf-8"?>
<WindowsPerformanceRecorder Version="1.0" Author="MagicAndre1981" Copyright="MagicAndre1981" Company="MagicAndre1981">
  <Profiles>
    <SystemCollector Id="SystemCollector" Name="NT Kernel Logger">
      <BufferSize Value="1024" />
      <Buffers Value="1024" />
    </SystemCollector>
    <SystemProvider Id="SystemProvider">
      <Keywords>
        <Keyword Value="Pool" />
      </Keywords>
      <Stacks>
        <Stack Value="PoolAllocation" />
        <Stack Value="PoolAllocationSession" />
      </Stacks>
      <PoolTags>
        <PoolTag Value="VoSM"/>
        <PoolTag Value="File"/>
        <PoolTag Value="Ntfx"/>
        <PoolTag Value="Proc"/>
      </PoolTags>
    </SystemProvider>
    <Profile Id="PoolUsage.Verbose.File" Name="PoolUsage" Description="Pool usage Tag 'Leak' " LoggingMode="File" DetailLevel="Verbose">
      <Collectors>
        <SystemCollectorId Value="SystemCollector">
          <SystemProviderId Value="SystemProvider" />
        </SystemCollectorId>
      </Collectors>
    </Profile>
    <Profile Id="PoolUsage.Verbose.Memory" Name="PoolUsage" Description="Pool usage Tag 'Leak'" Base="PoolUsage.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" />
  </Profiles>
</WindowsPerformanceRecorder>

Agora, execute wpr.exe -start C:\PoolTagLeak.wprp && timeout 600 && wpr.exe -stop C:\PoolusageUsage.etl e tente reproduzir novamente o uso.

Arrastar & Elimine o Pool Graph para o painel de análise, ordene as colunas para Type , Pooltag , Stack .

AgoraváparaAIFO(alocadodentro,liberadodoladodefora,entãoesteéumpossívelvazamento),encontresuas4tagseexpandaapilhaparaverquaisfunçõesestatagusa.Combasenosnomesdasfunções,vocêpodevera"causa". Na minha demonstração, o Thre tag (Thread) é usado pelo AVKCl.exe da G-Data porque ele inicia vários threads. Procure atualizações de driver / programa para corrigi-lo.

    
por 27.12.2016 / 13:47