Questão Por que o uso de RAM é muito maior do que o uso de memória virtual


Estou executando alguns testes em uma máquina muito potente (24GB de RAM, Windows 2008 de 64 bits)

Eu verifiquei o meu gerenciador de tarefas: memória física: 98% (RAM é de 24GB)

Mas o uso totalmente "memória (conjunto de trabalho privado)" de todos os meus processadores em execução não é mais do que 16GB

Para onde são esses 8GB extras usados? É usado pelo buffer do SO IO ou em algum outro lugar?

Alguém pode contribuir com algumas idéias?


4


origem


"O gerenciamento de memória do Windows é ciência de foguetes. E não acredite em ninguém que diga o contrário." ...zdnet.com/blog/bott/… - Moab
@ Moab: Oh, venha agora. Não há cálculo ou difeqs envolvidos em mm! :) - Jamie Hanrahan


Respostas:


Sim, usado para armazenamento em cache e buffers. OS modernos tentam ser inteligentes ... se você tem 8GB de memória apenas ocioso, não sendo usado para nada, está sendo desperdiçado. Portanto, enquanto nenhum aplicativo estiver solicitando, o SO encontrará outras coisas para usá-lo para tentar acelerar o processo. Não se preocupe - se o seu aplicativo precisar de memória, o sistema operacional liberará instantaneamente assim que o aplicativo solicitar.


7



É também por isso que as coisas serão paginadas no disco mesmo que a RAM não esteja cheia; para que, se o sistema precisar liberar a RAM, possa fazê-lo imediatamente. (É por isso que é sempre uma má idéia desativar seu arquivo de paginação.) - Shinrai
@Shinrai Bem, não se o Windows não consegue encontrar o suficiente para preencher essa RAM com essas atividades extras. Espere ... estamos falando do Windows: D Nevermind! - Zelphir
"instantaneamente" LOL. - Norm


Resposta rápida: Há muito mais em RAM do que o total de "Memória (conjunto de trabalho privado)" para todos os processos.

Primeiro, há o compartilhado conjunto de trabalho para todos os processos. Agora, muito disso é compartilhado entre os processos, portanto, ele conta apenas para o uso total de RAM uma vez. Mas o que o gerenciador de tarefas chama de "Memória (Conjunto de trabalho compartilhado)" deve realmente ser chamado de "potencialmente compartilhável". Não podemos dizer a partir dessa exibição o quanto realmente está sendo compartilhado. Tudo o que podemos dizer é que o total de RAM usado lá seria o maior de todos os processos. Mas na verdade haverá muito mais que isso.

Em seguida, há alocações de espaço do kernel, que aparecem em nenhum lugar na lista de processos do gerenciador de tarefas. Na guia "Desempenho", você verá indicações de memória paginada e não paginada - esses são os conjuntos de kernel. Todo o pool não paginado está na RAM o tempo todo e muito do pool paginado também será.

Se você quiser dar uma olhada real em "para o que toda minha RAM está sendo usada", veja a ferramenta "RAMmap" do sysinternals. Observe que na exibição "Use Counts", a coluna "active", e talvez "modificada", é a única coisa que conta para a RAM uso.


0