Questão Windows 10, processo 'System', tendo quantidades massivas de RAM


Desde que atualizei para o Windows 10, meu sistema tem consumido RAM excessivamente

enter image description here

Eu tenho lido um pouco e determinado é provável que um motorista vazando memória. Então peguei o Kit de Driver do Windows e acompanhei o uso da memória com o poolmon:

enter image description here

No entanto, eu realmente não sei como proceder daqui. O item foi marcado como "smNp" como o culpado desta questão? Como eu vou de lá para realmente identificar o driver?

Eu tentei algumas coisas como "C: \ Windows \ System32 \ drivers> findstr / s smnp ."mas não retornou nenhum resultado. Eu também dei uma olhada no arquivo pooltag.txt e esta é a descrição que encontrei para ele:

enter image description here 

Então sim, qualquer ajuda seria apreciada. Desde já, obrigado.


79


origem


ok, adicionei as informações que consegui encontrar. Verifique-os - magicandre1981
Este é um recurso do sistema para realmente manter mais coisas na RAM usando a compactação em vez de paginar para o disco. @ magicandre1981 tem a informação correta aqui que deve ser aceita como a resposta correta. - Mani Gandham
Os 14 megabytes que o poolmon mostra está associado à tag smNp é uma quantia puramente trivial. Você está preocupado com 1,3 GB no conjunto de trabalho particular do processo Sistema - por que se concentrar em 14 MB de pool não paginado (que não está no conjunto de trabalho de nenhum processo)? - Jamie Hanrahan


Respostas:


Entrando em services.msc (através da Win + R) e desativar Superfetch resolve completamente isso. Não tenho certeza se o Superfetch está quebrado a partir de agora ou se é "por design".

Além disso, aparentemente, se livrar do arquivo de paginação terá o mesmo efeito, mas a solução acima é um mais segura aposta.


15



Isso realmente funcionou. O uso de memória do sistema está de volta a ~ 0,1 MB, mesmo depois de horas de uso. Obrigado! - Nayncore
Embora normalmente esse alto uso de memória seja um sinal vermelho para um vazamento de memória, essa memória está sendo usada legitimamente como um RECURSO do Windows 10 (veja a resposta de magicandre abaixo). - Bigbio2002
não é um bug e não deve ser desativado - phuclv
lifehacker.com/… - phuclv
Se o recurso causar avisos constantes de pouca memória, isso não é um bom recurso. Agora meu Surface Pro com 4GB de RAM é completamente inutilizável para desenvolvimento e até mesmo no laptop com 8GB de RAM eu recebo constantemente esses avisos. Thumb up para solução! - Oleg I.


Eu olhei para traços xperf de vários usuários e aqui a função ntoskrnl.exe!SmKmStoreHelperWorker do Kernel começa a alocar memória.

Screenshot
(Clique na imagem para ampliar)

Eu descobri isso em sysinternals.

Eu perguntei a Microsoft sobre isso e a resposta é que isso é por design. Está relacionado à compactação de memória do sistema.

Dentro o anúncio do Windows 10 Build 10525, a Microsoft explicou um pouco:

No Windows 10, nós adicionamos um novo conceito no Gerenciador de Memória   chamado de armazenamento de compactação, que é uma coleção na memória de   páginas comprimidas. Isto significa que quando o Memory Manager sentir a memória   pressão, vai comprimir páginas não utilizadas em vez de escrevê-las para   disco. Isso reduz a quantidade de memória usada por processo, permitindo   Windows 10 para manter mais aplicativos na memória física de cada vez.   Isso também ajuda a fornecer melhor capacidade de resposta no Windows 10.   A loja de compactação reside no conjunto de trabalhos do processo do sistema. Desde o   processo do sistema mantém a loja na memória, seu conjunto de trabalho cresce   exatamente quando a memória está sendo disponibilizada para outros processos. este   é visível no Gerenciador de Tarefas e a razão pela qual o processo do Sistema aparece   estar consumindo mais memória que as versões anteriores.

Então, em vez de gravar dados de memória no arquivo de paginação, eles são compactados. E essa memória compactada é mostrada no processo do sistema.

A Microsoft também postou mais detalhes no hub interno. Winbeta criou um artigo que inclui mais detalhes.

Aparentemente, a razão para isso aconteceu com a Microsoft escolhendo   para suspender aplicativos UWP quando eles não estavam em primeiro plano, muito   semelhante a algum gerenciamento de SO do smartphone. Usuários do Windows 8 entenderam   (talvez não) que, se os aplicativos não estivessem na tela, eles não seriam exibidos até   o usuário voltou para eles. A abordagem "tudo ou nada" está sendo   Atualizada com o Windows 10 introduzindo uma camada entre o arquivo de paginação e   atividade de paginação normal. Agora, quando confrontados com problemas de pressão de memória,   O MM determinará quais páginas devem ser movidas para a lista modificada   um processo chamado de aparar. A lista modificada é uma lista secundária de   Arquivos de paginação fazendo backup de uma lista de arquivos de paginação em espera. Uma lista de backups é   capturado no caso de memória é recuperada da lista de espera por outro   processo, e o processo original vem procurando por sua página. Em vez de   de tudo ou nada, o Windows 10 MM comprimirá as páginas não usadas   do que escrevê-los para o disco. Com menos escrita, o resultado deve ser   menos operações de disco - graças à compressão - e agora mais dados   pode ser armazenado na memória.

enter image description here

Segundo a equipe do Windows, “Na prática, a memória compactada é   cerca de 40% do tamanho não comprimido e como resultado de um   dispositivo executando uma carga de trabalho típica, o Windows 10 grava páginas no disco   apenas 50% com tanta frequência quanto as versões anteriores do sistema operacional.Se tudo correr   de acordo com o plano, Usuários do Windows podem estar com menos espera   tempos para todos os dispositivos, bem como o tempo de vida prolongado em sistemas que   tem discos rígidos baseados em flash.

A descompressão também é algo que o Windows 10 foi projetado para fazer bem.   O Windows 10 está usando a combinação de paralelismo e   leituras sequenciais para produzir páginas na memória uma vez chamadas. O novo   descompressão deve resultar em uma experiência mais rápida como o Windows 10 é   simultaneamente descompactando dados e lendo-os em paralelo usando   CPUs múltiplas. Versões mais antigas do Windows podem ter se sentido lentas   por causa das taxas de transferência entre o disco.

A Microsoft também lançou um Vídeo no canal9, que explica o recurso.

Compactação de memória no Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM

Neste vídeo, Mehmet Iyigun passou algum tempo discutindo por que o Sistema   processo no Windows 10 está tomando um pouco mais de memória e porque é um bom   coisa. Um processo que consome mais memória parece uma coisa ruim - isso é   até que entendi mais sobre gerenciamento de memória, paginação e hard /   falhas de página suave. Acontece que o sistema operacional está fazendo algumas inteligente   otimizações que permitem que seus processos cortem parte da memória, mas   não necessariamente pagina para o disco. Não só a memória é preservada   na RAM, mas também é compactado - tornando as falhas de página mais difíceis   ocorrência rara. Os resultados devem proporcionar uma experiência mais rápida.

Nos últimos TH2 Builds, a Microsoft atualizou a descrição no gerenciador de tarefas e agora também mostra que o processo SYSTEM hospeda o compressed memory:

enter image description here

para evitar confusões sobre o uso "alto".

Na atualização de aniversário do Windows 10, que foi lançada em agosto de 2016, a Microsoft extraiu o Compression em agora mostrado em um processo chamado pseudo Memory Compression para não confundir mais os usuários porque o SYSTEM possui um uso de memória tão grande:

enter image description here

Mas parece que o Taskmgr não mostra este processo, apenas o ProcessExplorer / ProcessHacker é capaz de mostrá-lo. O Taskmgr mostra apenas a quantidade de memória compactada na visão geral:

enter image description here

Se você passar o mouse sobre o gráfico de memória usado no Taskmgr, verá uma dica de ferramenta que mostra a quantidade de dados que são compactados.

enter image description here

Neste demo 388MB são compactados para 122MB, então 267MB são salvos com a compactação.


91



@ Zaibis: Eu acho que a idéia é que você não está "soltando 1GB". 1 GB foi reservado pelo Windows e será usado para alocações. Você não tem perdido a memória. - Lightness Races in Orbit
"A memória não utilizada é uma memória desperdiçada" há muito tempo é o mantra do OS X. Parece que o Windows também entrou no sistema. - deceze
@ magicandre1981 O que você quer dizer comSystem Memory compression - user2284570
Eu não posso responder isso em detalhes. Eu só tenho a informação que é por design, tem algo a ver com uma compressão de memória e isso será explicado por um blogpost. Quando obtenho novas informações, atualizarei meu post. - magicandre1981
@JosiahKeller A caixa de diálogo "pouca memória" é sobre baixa memória virtual. Não tem quase nada a ver com uso ou disponibilidade de memória física (RAM). Eles são contabilizados separadamente por todos os sistemas operacionais modernos. - David Schwartz


Desativar o pré-buscador na chave regedit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters você provavelmente tem Enable Prefetcher a um valor de 2 ou 3 então mude para 0

Em seguida, você precisa desativar Superfetch em serviços

  1. Pesquisar por services.msc

  2. Encontrar superfetch clique properties em seguida, defina-o para disabled e pare o serviço também.

Eu faço estas etapas e quando estou jogando e normalmente usando PC e system processo usa apenas 28k


-1



Esta é uma ideia horrível. Pré-busca / superfetch são usados ​​por um motivo. Se você acha que pode gerenciar melhor a memória do que o seu sistema operacional, está, infelizmente, enganado. - b1nary.atr0phy
Desativar a pré-busca (ou "limpar sua pasta de pré-busca") é, na verdade, uma idéia muito boba. A pré-busca não faz com que o sistema use mais RAM. Acelera o carregamento de exe's e dll's uma vez que você os comecee só então. Re SuperFetch, a Microsoft desabilita SuperFetch por padrão em sistemas com um SSD para a unidade do Windows; eles sentem que o benefício não vale a pena. Pessoalmente, eu o mantenho habilitado porque tenho outros drives, não SSDs, que eu quero que o SF continue operando. - Jamie Hanrahan