Eu não entendo o uso de RAM

1

Isso é uso normal de RAM? Eu tenho Single Channel ddr2 RAM, a memória máxima está desligada na configuração do sistema. Não entendo porque tenho 5,7 GB disponíveis, às vezes até 4 GB em modo inativo. Informações do sistema e BIOS diz que eu tenho 8GB instalado, então não há problema. O uso de RAM é geralmente em torno de 27% a 30% ocioso, enquanto o uso da CPU é de 1% ocioso. Enquanto o uso de RAM em jogos é de 60%.

Agora estou questionando o que o Available and In realmente significa. Tudo parece bem, mas eu não entendo as informações que me são apresentadas pelas janelas.

    
por U. Dju 16.06.2017 / 11:39

2 respostas

8

O Windows tem dois tipos de memória "livre":

  • Gratuito: a memória está livre de todos os tipos de dados e pode ser usada imediatamente.
  • Disponível: representa a memória livre e a memória em cache.

Desde o Windows Vista, o Windows tenta carregar alguns arquivos na memória para que possam ser acessados mais tarde, , é a memória em cache.

Não se preocupe, o uso do seu RAM está perfeitamente correto.

    
por 16.06.2017 / 11:48
3

tl; versão dr: A quantidade de RAM que o Windows mostra como "em uso" em um sistema ocioso é quase sempre praticamente sem sentido.

Primeiro, vamos explicar alguns rótulos e ver como as coisas se somam ou não:

A partir do seu limite de tela do Monitor de Recursos ... "Disponível" é a RAM disponível para atribuição imediata para resolver uma falha de página. "Disponível" é a soma de "Standby" e "Free". Isso ocorre porque a memória "Standby" é tão disponível para uso imediato quanto "Livre".

Então, espera 1211 MB + Free 4709 MB = 5920 MB Disponível. Isso funciona.

"Em uso" do Gerenciador de Tarefas é aproximadamente "Total" menos "Disponível". 8147 Total - 5920 Disponível = 2227 MB. Isso corresponde ao seu "2,2 GB em uso" na tela do Gerenciador de Tarefas.

(Lembre-se que para ir de MB para GB você precisa dividir por 1.024, porque o Windows usa estupidamente os prefixos do SI para significar potências de 1024.)

O contador "em cache" do Gerenciador de Tarefas é complicado. É a soma da lista de páginas de espera (que, como mencionado, inclui o cache SuperFetch e o cache de páginas de memória virtual) mais o cache de arquivos reativo ... que faz parte do espaço de endereço do kernel, é paginável e também está incluído no contador "em uso".

Portanto, se você está tentando adicionar coisas para descobrir "para onde toda a minha memória RAM foi", é um erro incluir "em cache" na soma; isso dará a você um total que é muito grande, já que você estará contando a lista de espera e parte de "em uso" duas vezes. (Às vezes, isso te dá um total maior do que o total de RAM!)

Aliás, há outra lista, a lista de páginas "Zero" ou "Zerada", que a exibição do monitor de recursos simplesmente inclui em "Livre"; para a maioria "where is my RAM", a distinção entre "Free" e "Zeroed" é insignificante.

I don't understand why I have 5,7GB available, sometimes as low as 4GB in idle.

O Windows é um sistema operacional de memória virtual paginada por demanda. "Demand-paged" significa que as páginas de código e dados não são, geralmente, trazidos para a RAM até e a menos que sejam referenciados. Cada vez que você faz referência a uma página que não está na RAM, uma página de RAM deve ser removida de uma das listas "disponíveis" (zerada, livre ou em espera) e atribuída ao processo que precisa dela. Em seguida, ele é contado como "em uso" e é contado no processo "conjunto de trabalho". (Páginas são 4 KB.)

Esta sequência é uma "falha de página" - uma "falha de página difícil" se isso significasse ler a partir do disco (ou SSD). E dizemos que a página foi "paginada".

(Muitas falhas de página são realmente resolvidas sem ter que ir para o disco. Essas são chamadas de "falhas de página virtual". É desnecessário dizer que isso é muito mais rápido do que ir ao disco. Geralmente elas são resolvidas para páginas que estão na lista de espera - essa é a função "cache de páginas de memória virtual" que mencionei anteriormente. Não vou aprofundar isso aqui.)

No entanto, o termo "paginado por demanda" também se aplica à alocação de memória física (RAM). Um processo que está experimentando uma alta taxa de falhas de página + muito tempo de CPU (ou seja, uma alta demanda por RAM) será permitido usar mais RAM; processos menos ocupados recuperam seus conjuntos de trabalho. Se a RAM disponível for abundante (como é nos casos que você descreve), os processos geralmente são permitidos apenas para fazer falhas e mantê-la - porque, por que não, se a RAM é abundante?

Mas se as demandas por RAM aumentarem e a memória RAM disponível ficar escassa, os processos anteriormente inchados serão reduzidos para disponibilizar mais RAM para os processos recentemente ocupados.

E, claro, você sabe que nenhum sistema operacional moderno está completamente ocioso? Sempre há tarefas de manutenção em segundo plano, e eles precisam de RAM para trabalhar. Se houver muita RAM (como há em sua máquina), eles poderão usar uma boa quantidade dela, não porque "precisem tanto", mas porque nada mais está em execução que precise disso. Mas se você, em seguida, executar um programa intensivo de RAM, esses processos em segundo plano serão colocados de volta em seu lugar, por assim dizer, para que mais RAM esteja disponível para o que você está trabalhando ativamente.

Portanto, é um erro olhar para um sistema inativo do Windows e dizer "oh, o Windows tira x quantidade de RAM apenas quando está ocioso!" x depende muito de quanto RAM há total, quanto tempo está inativo, quais coisas você instalou que adicionaram várias "tarefas ociosas" ao sistema, e até mesmo o que estava fazendo antes estava ocioso. Por isso, vai variar muito de um sistema para outro.

Nem a observação de que "está usando x quantidade de RAM quando ociosa" no seu sistema significa que o Windows manterá isso para si quando você iniciar um programa que use muita memória RAM. Significa apenas que é o quanto está usando agora, sob as condições atuais, influenciado por muitas coisas que ocorreram recentemente.

    
por 18.06.2017 / 22:44