Estou usando o Windows 7 de 64 bits com 8G de RAM. Depois de algum uso, sinto que o Windows está ficando lento. A unidade está se debatendo. Quando olho para o monitor de recursos e a atividade do disco, vejo algumas instâncias de uso do arquivo de paginação (c: \ pagefile.sys). Verifico a memória física e vejo cerca de 2.3G de memória disponível e 700M de memória livre.
Por que o Windows não usa mais memória livre e menos arquivo de paginação? Precisa deixar uma quantidade x de RAM livre, quanto isso seria? É uma porcentagem de RAM física?
Meu plano é obter mais RAM e um SSD para a unidade principal. Enquanto isso, estou sofrendo de desempenho lento.
windows-7
memory
task-manager
resource-monitor
Tony_Henrich
fonte
fonte
Respostas:
Primeiro, não coloque seu arquivo de paginação em um SSD. Embora os SSDs tenham melhorado com o nivelamento de desgaste, o arquivo de paginação é gravado com freqüência e degradará seu SSD muito mais rápido que o uso geral.
O que muitas pessoas não entendem é que o Windows nunca tem realmente memória livre. Existem alguns MBs que são mantidos livres para demandas de intermitência, mas, caso contrário, a diferença entre a memória ativa do aplicativo em uso e a memória total é geralmente consumida pelo que é conhecido como memória "em espera".
Essas são páginas de memória que podem ser despejadas, se necessário (a memória em espera é um grande e grande cache); portanto, do ponto de vista do aplicativo, ela está disponível, mas elas não estão sendo usadas de forma alguma. Geralmente, eles funcionam como cache de disco ou cache de arquivo de paginação.
O objetivo do Windows é manter os dados com maior probabilidade de serem usados nesse cache em espera, com base nos padrões de uso. Para usar um exemplo artificial, vamos comparar o valor relativo da memória privada de um programa como o Windows Update (geralmente configurado para ser executado uma vez por semana), com o armazenamento em cache do conteúdo da área de trabalho nessa memória em espera:
Na maior parte do tempo, o Windows Update está em suspensão. Ele mantém a memória e, na maioria das vezes, não faz absolutamente nada de valor enquanto aguarda a programação chegar. O conteúdo da pasta da área de trabalho, por outro lado, pode ser consultado constantemente, especialmente se você deseja salvar arquivos nela.
Nesse caso, o que o Windows fará é paginar a memória alocada para o Windows Update (mesmo que a memória não esteja "cheia" e usar o espaço disponibilizado na RAM para armazenar em cache o conteúdo da área de trabalho. Isso resulta em melhor desempenho para você.
O Windows está tomando milhares dessas decisões e gerenciando um cache de disco para centenas de arquivos sendo gravados constantemente pelos serviços em segundo plano, enquanto tenta equilibrar isso com as demandas de memória dos aplicativos ativos. Às vezes, isso fica errado por um momento, e talvez tenhamos que esperar para que os dados sejam devolvidos à memória quando alternamos para um aplicativo que dorme em segundo plano há um tempo. Mas o que você precisa pensar é que, se ele mantivesse esse aplicativo completamente na memória, quantos outros aplicativos estariam atolados, aguardando a conclusão de gravações e leituras de disco ou seriam forçados a paginar? E se esses fossem os aplicativos que você estava usando nesse meio tempo?
Os aplicativos frequentemente alocam páginas de memória usadas muito raramente, como código de inicialização (usado uma vez e depois não é necessário), código de desligamento (usado uma vez e depois não é necessário) ou código de atualização. Não é prático manter tudo isso na memória quando houver usos muito mais importantes; portanto, uma vez que o Windows identifique seções de código que não foram necessárias para a operação atual de um aplicativo, ele pagina essas seções para o arquivo de paginação, mesmo que tecnicamente poderia retê-los na memória.
(E, na verdade, dependendo dos aplicativos, os sistemas frequentemente alocam mais memória do que realmente têm, esperando que a maior parte acabe sendo paginada. Se você estiver vendo uma quebra de memória detalhada, a cobrança "Confirmar" ou "Confirmar" é a quantidade de memória que o Windows alocou para vários aplicativos. O arquivo de paginação é usado para fornecer garantias para essa memória, mesmo que ela não tenha RAM física suficiente para cobri-la.)
Acabei de notar que você fez uma distinção entre memória disponível e livre na sua pergunta; Peço desculpas se você se sente lecionado e já sabia a diferença. Idealmente, a memória livre é sempre 0. No entanto, enquanto a memória em espera é a memória que pode ser liberada, nem sempre é a memória que pode ser liberada rapidamente. Se eu tentar gravar um arquivo de 1 GB no disco, o Windows o colará em um cache de disco na memória, se puder, e depois gravá-lo lentamente no disco rígido em segundo plano. Se um aplicativo precisar solicitar 50 MB de memória adicional, mas nenhum estiver disponível porque esse enorme cache de disco ainda está sendo liberado, o aplicativo será interrompido até que esteja disponível. Manter um pequeno buffer disponível permite que o sistema resolva esse problema com um atraso mínimo do ponto de vista do usuário.
fonte
Isso se chama planejamento antecipado.
Gravar páginas de memória no arquivo de paginação quando ainda há bastante RAM é uma coisa boa. Assim que um programa solicitar mais memória do que o disponível, o sistema operacional poderá começar a limpar o espaço o mais rápido possível. Melhor preparar agora que mais tarde.
Se o sistema operacional tiver que esperar, você terá um gargalo de desempenho. Se um programa solicitar mais memória do que o disponível, agora é necessário aguardar até o sistema operacional gravar o bloco de memória alterado e liberá-lo.
fonte
Existe uma ferramenta para definir o cache de disco pelo SysInternal.
Você pode encontrá-lo aqui:
http://technet.microsoft.com/en-us/sysinternals/bb897561.aspx
fonte
Eu tenho o arquivo de paginação desativado nos últimos 7 anos. Na verdade, é a primeira coisa que faço após a instalação nova. Nunca tive nenhum problema com isso. (Na verdade, eu tive um jogo chamado "titan quest" realizado uma verificação muito estúpida na inicialização, então criei um arquivo de paginação de 4 MB apenas para fazê-lo feliz e desliguei o PF mais tarde). Quanto à pergunta original. O Windows usa nossa RAM para cache de E / S de disco. Por alguma razão, ele acha que o cache do disco é igualmente importante para o código e os dados dos programas ativos. E não há como limitar o tamanho do cache do disco. Está lá por design e não podemos fazer nada sobre isso ... Oh, espere! Nós podemos! Apenas desative o arquivo de paginação. Executando aplicativos pesados na RAM? Compre mais RAM ou feche um aplicativo antes de iniciar outro. Você pode usar o Process Explorer para ver quanta memória é usada em um determinado momento.
fonte
Os argumentos ( aqui e aqui ) para manter e usar o arquivo de paginação, mesmo que haja RAM suficiente, são:
Com o monitor de recursos do Windows, é possível ver quanta RAM é usada para armazenamento em cache (mostrado como "Em espera").
Se você perceber que sua RAM está realmente em uso ou em espera, o arquivo de paginação é útil para você. Se a combinação de tarefas e RAM disponível for de tal forma que uma parte significativa da memória apareça como não utilizada ("Livre"), acho que não há necessidade de triturar o disco rígido apenas em relação a alguém que "conhece melhor e disse isso aqui" "
fonte
Todos esses comentários e a resposta correta estão ausentes. Desligue seu arquivo de paginação. Não é necessário com 8 GB de RAM e, se você precisar de mais RAM, compre. bem simples mesmo.
fonte