Uso da memória do sistema alto do Windows 8

0

Meu problema parece simples. Meu computador está usando mais memória física do que realmente é contabilizado na soma dos meus programas.

! (Executando o Windows 8.1, os patches mais recentes)

Quais janelas relatam meu uso total como

Qual é o uso total do sistema

Eu uso 7,5 GB. O uso total é de 12 GB. O Delta é de 4,5 GB. Isso é algo que eu consideraria muito alto.

A maioria das postagens que encontrei neste site está relacionada a vazamentos de memória do driver que afetam o 'pool paginado' e o 'pool não paginado', criando um alto uso. No entanto, minhas páginas + pool não paginável é em torno de 650MB, o que eu entendo não está muito acima de 'normal', e não deve causar este delta de 4,5GB. Para investigar melhor isso, eu até mesmo corri poolmon.exee não encontrei nenhum desses drivers quando eu classifiquei pelo uso.

Poolmon tela

Então minha pergunta é simplesmente: o que dá? Onde você é a memória?

Atualizar:

Um usuário gentil me encaminhou para o rammap do programa, que fornece descrições mais detalhadas da alocação de memória. Ao executá-lo, descobri que 2 GB de memória na seção "em uso" foram alocados para "Arquivos mapeados", o que presumo ser o cache de disco. Ao ir para a guia "páginas físicas" e classificar por esses arquivos, aprendi que muitos dos arquivos mapeados ativos eram arquivos em uso por um aplicativo torrent que hospedava grandes arquivos de dados. Terminar o aplicativo liberou 1,2 GB de cache de disco em 'espera', dando a captura de tela que você pode ver abaixo.

Rammap

O 'delta', caiu para 3,2 GB, o que está se aproximando do que eu considero normal, mas ainda está no lado alto, mas se você subtrair o restante do 'arquivo mapeado' de 800MB, você acabará com 2.4 GB, que poderia ser simplesmente explicado pela contagem listada em Usuários no gerenciador de tarefas estando incorreta.

Com esta informação, agora não tenho tanta certeza. Isso é só eu não entendendo a contabilidade da memória? A seção 'compartilhável' na tabela é realmente usada por programas do usuário e não é contabilizada no espaço do usuário no gerenciador de tarefas? Se assim for, então este problema seria uma mistura de mim, sabendo que o cache de disco pode contar na memória 'In Use' / 'Active' e que a guia do usuário no gerenciador de tarefas é imprecisa.

Claire Fey
fonte
O que você quer dizer com "uso de memória do sistema" exatamente? Você quer dizer apenas memória que está sendo usada? Além disso, você marcou esses "vazamentos de memória". Você tem alguma evidência de vazamento? Você tem um problema real ou apenas precisa entender como o Windows 8 usa memória?
David Schwartz
@DavidSchwartz Eu não gosto muito do tom do seu comentário. O uso de memória do sistema está se referindo ao uso de memória que não é considerado pelos programas do usuário. O problema real é o declarado, que o uso de memória do sistema é excepcionalmente alto, maior do que eu observei em outros computadores meus também executando janelas e também operando em cargas de trabalho semelhantes. Preciso de ajuda para entender como o W8 usa memória? Talvez? Me ilumine respondendo a pergunta informando-me exatamente onde estou indo errado em meu raciocínio, e prontamente fecharei a questão e marquei a resposta como correta.
Claire Fey
Então - essa questão foi levantada como uma possível duplicata. No entanto , parece que esta pergunta é muito melhor do que a outra, e eu sinto que podemos deixar que ela siga seu curso. Nós a fechamos de qualquer forma, especialmente se a causa for diferente
Journeyman Geek
@JourneymanGeek obrigado por editar meu post e fazer com que as imagens sejam exibidas por padrão. Eu não sabia que poderia fazer isso em virtude do meu noob-ness;)
Claire Fey
postar fotos de RAMMap , o uso do pool de kernel é ok.
magicandre1981

Respostas:

0

O Windows 8, como quase todos os sistemas operacionais modernos, faz de tudo para usar o máximo de memória possível. Por quê? Porque qualquer memória não usada é sempre desperdiçada.

Se um sistema tem 8GB de memória e usa apenas 7GB, não ganha nada. Não pode usar 9GB depois. Ele simplesmente perdeu para sempre qualquer benefício que poderia ter ganho com aquele 1GB extra enquanto a memória estivesse livre.

Por exemplo, digamos que seu sistema tenha muita RAM livre e você execute algum programa. Quando o programa termina, o sistema tem duas opções. Ele poderia manter o programa (o arquivo executável real no disco) na memória ou poderia liberar a memória que continha o arquivo do programa.

Se liberta a memória, tem que se dar ao trabalho de libertá-la. Se alguma vez quiser usar essa memória novamente, ela terá que se dar ao trabalho de não liberá-la. E se esse programa for executado novamente, ele deve ser carregado do disco. Eixo triplo.

Se não liberar a memória, não precisa se dar ao trabalho de liberá-la. se ele quiser usar essa memória para algum outro propósito, não precisa se incomodar em desfazer isso, salvando um passo. E se o programa for executado novamente, não precisa ser carregado do disco. Vitória tripla E, claro, como nenhum processo está executando esse programa atualmente, a memória não será associada a nenhum processo.

Então, o que está acontecendo é que seu sistema tem memória livre suficiente para operar de uma maneira muito eficiente, onde não desperdiça esforço, tornando desnecessária a memória livre e, então, não precisa desperdiçar esforço para liberar memória para usá-la. Em vez disso, ele pode fazer a transição de forma eficiente da memória de um uso para outro e, se os dados dessa memória forem necessários, a E / S do disco poderá ser evitada.

É uma vitória ao redor. A memória está armazenando dados que o sistema espera que alguns processos futuros possam achar úteis, e também está evitando viagens estranhas através da lista de memória livre para liberar memória apenas para marcar novamente. Os sistemas operacionais modernos precisam manter uma quantidade muito pequena de memória livre, apenas o suficiente para lidar com situações de emergência (como falhas de página e solicitações de memória do código de interrupção), onde não é possível fazer a transição da memória de um uso para outro.

David Schwartz
fonte
Obrigado pela sua resposta David. Eu aprecio a ideia de que memória livre é memória perdida, já que ela pode ser usada para armazenar dados em cache para uso futuro, em vez de carregá-los do disco. O que eu não entendo é por que a memória que está sendo usada para armazenar em cache não está listada em 'Em cache' / 'Em espera' ('Memória que contém dados em cache e códigos que não estão em uso atualmente') no gerenciador de tarefas? Fiquei com a impressão de que os dados em cache foram incluídos lá, em vez de sob a métrica 'Em uso' ('Memória usada por processos, drivers ou o sistema operacional')
Claire Fey
@clairefey - fyi: Mark Russinovich explica os mistérios do gerenciamento de memória: youtube.com/watch?v=AjTl53I_qzY youtube.com/watch?v=6KZdNsq1YV4
akira
@akira Obrigado, eu vou ter certeza de assistir aqueles amanhã de manhã.
Claire Fey
Você ficará encantado. Btw: Mark escreveu as ferramentas que você foi referido.
akira
Você está perdendo um ponto muito importante - evidência ausente de um vazamento de memória (que você não tem), quanto menos memória livre, melhor. Os sistemas operacionais são projetados especificamente para manter o mínimo de memória possível, tentando atingir o mínimo absolutamente necessário.
David Schwartz