Por que minha máquina virtual não está usando toda a memória alocada a ela? [duplicado]

2

Eu tenho uma máquina virtual VMWare no meu computador (Host: Win7 x64, VM: Win7 x86). O host tem 8 GB, dos quais eu aloquei 4 GB para a VM, como você pode ver na imagem abaixo:

MasquandoeuvouparaaprópriaVM,ocomputadorparecepensarquesótem3GB-vejascreenshotdoGerenciadordeTarefas:

Observe a memória física total de 3071 GB. Eu tentei desligar a VM e reiniciar, mas ainda não usa a memória extra.

Veja também minha captura de tela do sistema:

Esta é uma limitação do VMWare? Ou há algum interruptor secreto que eu preciso mudar?

    
por Shaul Behr 08.11.2010 / 12:02

4 respostas

7

Geralmente, um sistema operacional de 32 bits pode ver apenas 4 GB de memória, incluindo dispositivos (placa gráfica, etc.). Isso resulta no sistema operacional vendo 3 GB de memória física, mesmo se mais de 3 GB estiver instalado. Isso é verdade para máquinas físicas e VMs.

32 bits O Windows XP, como o Windows 2003 Server e versões posteriores, suportava PAE (Physical Address Extensions), o que permitia usar mais de 4 GB de memória física. O Windows Vista e o Windows 7 não suportam mais a PAE devido a incompatibilidades de driver que já estavam presentes no Windows XP.

Assim, geralmente, apenas o Windows de 64 bits suporta mais de 3 GB de memória física, além de versões de 32 bits do Windows que suportam PAE (Windows 2000, Windows XP, Windows Server 2003 e Windows Server 2008); enquanto as versões de 32 bits do Windows que não suportam PAE (Windows Vista, Windows 7) normalmente não conseguem ver mais de 3 GB de memória física.

Observe novamente que a memória atribuída a uma VM conta como "memória física" para o sistema operacional em execução na VM.

    
por 08.11.2010 / 15:26
8

Máquinas de 32 bits só podem endereçar (ver) 3 GB de RAM. Sua VM pode conceder 4 GB, mas só pode usar 3 GB dela. Se você deseja usar o espaço restante, instale um sistema operacional de 64 bits na VM.

    
por 08.11.2010 / 13:18
3

Provavelmente, a VM está sendo executada no sistema operacional host como um programa de 32 bits, para que possa suportar adequadamente um convidado de 32 bits. Isso significa que está sujeito a limitações de 32 bits e, como tal, a memória que pode alocar está sujeita às limitações de espaço de endereço virtual de 3 GB e espaço de kernel de 1 GB que são colocadas em programas de 32 bits.

Um bom blog sobre isso: link

A partir dessa página, seu espaço de endereço para o programa de hospedagem ficaria assim:

E sua VM seria bloqueada no espaço de 3 GB, já que o GB final é necessário para que o programa de 32 bits tenha acesso aos drivers do sistema em seu host.

    
por 08.11.2010 / 15:14
1

Se isso acontecer com VMs de 64 bits, é porque alguns produtos VMware, como ESX / ESXi e Workstation, podem comprometer a RAM com máquinas virtuais.

Isso permite que várias VMs sejam executadas com mais RAM alocada para elas do que a máquina host possui fisicamente. Embora a RAM seja supercomprometida para eles, eles só recebem a RAM dinamicamente quando realmente precisam dela.

    
por 08.11.2010 / 15:41