Estou executando o VirtualBox em uma máquina Windows XP com 2 GB de RAM. Eu criei uma máquina virtual Ubuntu e aloquei uma memória básica de 750MB.
Apenas para testar, eu executei 20 coisas ao mesmo tempo na máquina virtual. De acordo com "top" no ubuntu, 750 megs de memória estavam sendo usados, bem como espaço de troca considerável.
No entanto, de volta ao Gerenciador de Tarefas do Windows, o VitrualBox usava apenas 45.000 K de memória. Como pedi à máquina virtual para fazer cada vez mais, o uso da CPU do processo VirtualBox aumentou (no Windows), mas o uso da memória permaneceu o mesmo.
Como uma máquina virtual que usa 750 MB de memória consome apenas 45 MB de memória em uma máquina física?
Suponho que a resposta é que a máquina virtual não está usando memória real, mas sim memória (ou seja, espaço de troca), mas com certeza parece ágil como se estivesse rodando na RAM.
ATUALIZAÇÃO: Eu brinquei com perfmon como sugerido. Mesmo resumindo tudo que consigo pensar, ainda parece ocupar menos de 300 megas ... então ainda é um mistério.
Process VirtualBox VirtualBox#1 Total
PoolNonpagedBytes 5,840 42,552 48,392
PoolPagedBytes 119,796 166,892 286,688
PrivateBytes 8,884,224 52,719,616 61,603,840
VirtualBytes 75,939,840 161,202,176 237,142,016
Sum 84,949,700 214,131,236 299,080,936
fonte
Com algumas soluções de virtualização no Linux, a maneira como elas alocam memória faz com que apareça no kernel host como um arquivo especial de mapeamento de memória (muito parecido com o
/proc/kcore
arquivo especial), por isso é contado na contagem "em cache" na saída defree
, e não no contagem "usada".Presumo que algo semelhante esteja acontecendo com o seu ambiente Windows: os 45Mb serão usados pelos processos de gerenciamento do VirtualBox, e os 750 alocados à própria VM serão contados em outros lugares.
fonte
Pode ser memória virtual, arquivos mapeados na memória ou algo semelhante.
Você já tentou exibir outras colunas no Gerenciador de tarefas?
fonte
Não acredite no Gerenciador de tarefas. Não pode ver tudo.
Esse problema é mais comum no SQL Server, por exemplo, com o SQL, nunca encontrei alguém que me desse uma maneira de obter informações precisas do Gerenciador de Tarefas, o que me levaria a acreditar que a figura não está escondida em um dos outras colunas.
fonte