Por que o sistema ocupa tanta RAM?

Por que o sistema ocupa tanta RAM?

Por que há um total de 5 GB de memória usado quando todos os processos juntos usam apenas mais de 2 GB? Por que o sistema ocupa tanta RAM?

Responder1

Sistemas que não estão sob pressão de memória não têm motivos para tentar liberar RAM. Na verdade, eles usam o máximo de RAM possível porque a RAM em uso pode melhorar o desempenho. A RAM que não está sendo usada é desperdiçada para sempre, você não pode economizar RAM para mais tarde, então os sistemas operacionais modernos tentam manter o máximo de RAM possível em uso.

É muito mais eficiente fazer a transição direta da RAM de um uso para outro do que liberá-la apenas para desliberá-la novamente.

Esse comportamento ocorre intencionalmente. Se você quiser que a memória fique parada sem fazer nada, remova-a do computador e coloque-a na mesa.

Se você está pensando “Quero essa RAM livre agora para poder usá-la mais tarde”, tire isso da cabeça. Você pode usá-lo agoraeuse-o mais tarde. Não há nenhuma compensação a fazer aqui.

Responder2

Primeiro, se os títulos das colunas são o que penso, os dois primeiros processos por si só estão usando 2 GB. (Observe que o processo do "sistema" não é o sistema operacional... pelo menos não é tudo. Por exemplo, a memória usada pelos pools pagináveis ​​e não pagináveis, o cache de arquivos e o cache SUperFetch não aparece como parte de o processo do "sistema".)

Dois, essa coluna mostra apenas o tamanho de cada processoprivadoConjunto de trabalho. Mas cada processo tem muito mais RAM do que isso. O resto está em suacompartilhadoConjunto de trabalho. Isso é elegível para ser compartilhado entre processos, mas não é necessariamente. se você somou todos os conjuntos de trabalho compartilhados... infelizmente isso não dirá qual é o verdadeiro uso total. Não é tão grande quanto o total deles e é muito, muito improvável que seja tão pequeno quanto simplesmente o maior dos conjuntos de trabalho compartilhados.

Terceiro, o sistema operacional mantém muitas coisas que não fazem parte de nenhum processo. Existe o pool não paginado. Existe a parte residente (paginada) do pool paginado. A parte residente do cache de arquivos do sistema (não o cache SuperFetch) também faz parte da memória considerada "em uso" (não "disponível"). (O espaço utilizado pelo SuperFetch é considerado “disponível”).

Quarto, quase todos esses usos (exceto o pool não paginável) são pagináveis, portanto, não representam quanto cada componente "precisa", mas sim "quanto está usando nas condições atuais".

O Windows permite que os processos e outros usos pagináveis ​​cresçam de forma oportunista se não houver pressão na RAM. Aqui você tem RAM disponível suficiente para fazer tudo o que está fazendo atualmentede novo,sem fechar nada atualmente em execução. Esse não é um sistema que esteja sofrendo pressão de memória, então é claro que o Windows não está sendo econômico com a RAM.

Execute exatamente a mesma carga de trabalho em uma máquina com apenas 6 GB de RAM e você provavelmente verá tudo um pouco menor, mas não muito. Execute tudo em uma máquina de 4 GB de RAM e tudo seria definitivamente menor (e provavelmente rodaria um pouco mais lento, mas não muito, porque é provável que muito do que está na RAM em sua configuração atual seja "obsoleto"... não há muito dano em transferir para o disco.)

De volta à configuração atual: se de repente você precisasse executar algo que precisasse, digamos, de mais 8 GB de RAM, o Windows reduziria os processos de trabalho existentes - começando pelos menos ativos - para abrir espaço para isso. RAM não é como gasolina; como David Schwartz disse muito bem, não há necessidade de economizar RAM agora para poder usá-la mais tarde. O Windows pode usá-lo agora para uma coisa e permitir que você o use para outra coisa mais tarde. Esse é um sistema operacional paginado sob demanda para você.

informação relacionada