A relação entre carga de confirmação, listas de espera e memória física disponível?

0

Vimos esta discussão mas acredito que não responde totalmente a minha pergunta, então aqui vai. Eu estou no Windows 8 Enterprise, 4 Gb RAM na placa, arquivo de paginação ativado. Estou vendo meus indicadores de desempenho e vejo que a taxa de commit atual é de 4,14 Gb, enquanto a quantidade de memória física usada é de 2,43 Gb e mais 919 Mb são usados para standby (ou seja, o cache de arquivos, etc.)

Mas por que isso acontece? Se eu entendi a noção de cometer cobrança corretamente, isso basicamente significa a demanda atual por RAM de todos os aplicativos e serviços em execução. Então, parece completamente obscuro para mim por que o Windows alocaria tanta memória para o cache, ao mesmo tempo forçando uma parte dos aplicativos em execução a serem trocados para o arquivo de paginação? Não seria mais razoável limpar a maior parte do cache para dar aos aplicativos em execução o máximo de RAM possível e preencher novamente o cache assim que mais RAM livre se tornasse disponível?

    
por DmytroL 31.10.2014 / 12:14

1 resposta

0

Não, a taxa de commit não é a "demanda atual de RAM". É a demanda atual de espaço de endereço virtual suportado pelo arquivo de paginação (total em todos os processos, além de algumas alocações de todo o sistema).

É muito comum que apenas uma parte disso tenha sido referenciada. Seria completamente bobo amarrar a RAM para partes do espaço de endereço virtual que ainda não foram referenciadas (a menos que você tenha alguma forma de saber o que será mencionado no futuro).

A alocação de RAM ao cache, por outro lado, é feita porque há boas evidências de que as coisas armazenadas em cache provavelmente serão necessárias novamente em breve (na maioria dos casos, a evidência é que elas foram referenciadas recentemente). Então, por que não mantê-lo na RAM?

Além disso: a RAM não é "alocada" para o cache em qualquer tipo de base permanente. Se outras coisas precisarem de mais RAM, a RAM do cache será reduzida, se necessário, para acomodá-los.

Quase nunca há RAM suficiente para que os espaços de endereço virtuais de todos os processos sejam mantidos na RAM. Assim, todo sistema operacional de memória virtual está jogando um jogo de equilíbrio, tentando manter as coisas mais interessantes na RAM. Longa experiência tem mostrado que o uso de algumas das RAM para vários tipos de cache é uma boa otimização. Certamente é melhor do que usar algumas delas para processos privados. que nunca foi referenciado e nunca pode ser referenciado.

    
por 21.05.2015 / 10:07