Por que o Windows não relata corretamente a RAM usada pelo VirtualBox?

0

Então, por curiosidade eu decidi dar uma olhada no meu uso de RAM com o meu windows 7 VM (3 GB de RAM alocado) em execução. Fiquei surpreso ao ver os resultados e estou me perguntando por que esses resultados são assim:

O gerenciador de tarefas da minha máquina host (win 8.1) mostra o seguinte:

OquerealmentemostraoquantooChromeé...Dequalquerforma,observequeogerenciadordoVirtualboxestáusandoapenas75MBdeRAM.Bem,issoérazoável,afinalésóogerenciadorenãoaprópriaVM.Masespere,essesnúmeros(mesmosevocêadicionaroquevocênãovêlá)nãosomamousoatualdeRAM(9GB,conformerelatadonaguiaDesempenho).Considerandoqueminhamáquinaconvidadaestáusando1,5GBagora,seriadeesperarqueelaestivesseumpoucomaisacimanalista...

Ok,vamostentarumaferramentadiferente: RAMMap

Primeiro, mais duas imagens do RAMMap:

Bem, esse bit para "processo privado" parece ter cerca de 3 GB (a menos que eu tenha uma ordem de magnitude com meu olhar superficial), mas ainda assim - nada, exceto o Chrome, ocupa mais de 100 MB de RAM. / p>

Oh, ei, olhe para isto:

Parece que finalmente encontrei onde está ... mas o que é isso? O VBox trata a RAM do convidado como um arquivo que apenas é carregado na memória RAM? Isso é ... algo completamente diferente? Por que o Windows não me informa sobre isso em sua ferramenta normal do Gerenciador de Tarefas?

TL; DR: Windows, você não me mostra todo o uso de RAM

    
por Mitch 30.07.2014 / 20:38

2 respostas

0

TL; DR: O processo estava usando a memória, parou de usar a memória e o Windows simplesmente ficou com preguiça de lidar com isso ainda.

O Windows não mostra o uso de RAM no Gerenciador de Tarefas em Processo, a menos que o processo solicite a RAM e tenha algum controle sobre seu uso. Se o sistema operacional fornecesse a RAM ao processo para fazer o mapeamento de volta, e esses mapeamentos fossem descartáveis, seria confuso mostrá-los cobrado pelo processo. Isso resultaria em números de uso amplamente variáveis para um processo, já que outros processos faziam com que esses mapeamentos fiquem sem retorno.

Não há nenhum motivo especial para você se preocupar com o fato de o Windows ter fornecido 2 GB de RAM a esse processo, não porque o tenha solicitado, mas apenas porque não conseguia pensar em nada melhor para fazer com essa memória. E, é claro, o Windows pode recuperar essa RAM a qualquer momento se tiver algo a ver com a memória.

Se o processo realmente usar a memória, ela será considerada parte do conjunto de trabalho e carregada no processo. Se o Windows limpasse as coisas agora e o processo usasse posteriormente a memória, o Windows teria que alocá-las novamente. Portanto, não faz sentido fazer um trabalho extra agora apenas para, com toda a probabilidade, fazer mais trabalho depois.

    
por 30.07.2014 / 20:45
0

Ele é mostrado no RAMMap em Driver bloqueado . Veja os usos de 3 GB que é o que você atribuiu à VM.

As VMs usam essa memória para que nenhuma outra ferramenta possa usá-la.

    
por 31.07.2014 / 06:12