Excesso de compromissos de memória
- 3 minutos
Na virtualização de memória, o tamanho total combinado de memórias reais pode crescer além do tamanho real da memória física. Esse conceito é normalmente chamado de excesso de compromissos de memória. O excesso de compromissos de memória garante que a memória física seja altamente utilizada por memórias ativas e reais (supondo que várias VMs estejam em execução simultaneamente). De fato, sem o excesso de compromissos da memória, o hipervisor pode executar somente VMs com um tamanho total de memórias reais menos do que a memória física. Por exemplo, a Figura 3 mostra um hipervisor com 4 GB de memória física e três VMs, cada uma com 2 GB de memória real. Sem o excesso de compromissos da memória, o hipervisor pode executar apenas uma VM porque ela não tem memória física suficiente para atribuir a duas VMs ao mesmo tempo. Embora cada VM exija apenas 2 GB de memória, enquanto o hipervisor tem 4 GB de memória física, essa memória não pode ser proporcionada porque os hipervisores geralmente exigem memórias de sobrecarga (por exemplo, para manter várias estruturas de dados de virtualização).
Figura 3: Um hipervisor com 4 GB de memória física, permitindo três VMs de uma só vez com um total de 6 GB de memória real
Para esse fim, em situações práticas, algumas VMs podem ser levemente carregadas, enquanto outras podem estar muito carregadas. VMs levemente carregadas podem fazer com que algumas páginas permaneçam ociosas, enquanto as VMs com muita carga podem resultar na ultrapaginação da página de memória. Para lidar com essa situação, o hipervisor pode pegar (ou roubar) as páginas inativas da memória física de VMs ociosas e fornecê-las a VMs muito carregadas. Como efeito colateral, os hipervisores geralmente gravam zeros nas páginas de memória física inativa roubadas/recuperadas para evitar a perda de informações entre VMs.