Alocando quantidades de memória não padrão para máquinas virtuais [duplicado]

13

Ao configurar máquinas virtuais nos vários sistemas host que usei, sejam eles Hyper-V, VMware ou KVM, sempre aloquei RAM em quantidades que correspondem às configurações de memória física - por exemplo, para adicionar 1GB de RAM gostaria de adicionar 1024MB, para 6GB de RAM gostaria de adicionar 6 x 1024 = 6144MB.

Eu percebi que nunca pensei sobre o porquê de fazer isso, foi apenas o modo como as coisas foram feitas em um local de trabalho anterior que eu nunca questionei.

Então, minha pergunta é, além do fato de que isso significa que sistemas operacionais virtualizados podem ordenadamente arredondar a RAM alocada para o GB mais próximo, há alguma desvantagem em alocar memória RAM em quantidades que não são potências de dois ou múltiplos delas? por exemplo. haveria alguma desvantagem em adicionar 500MB de RAM, 750MB de RAM ou 1001MB de RAM?

Alternativamente, existem vantagens que tornariam isso a maneira recomendada de fazer as coisas?

Deixei a questão em aberto até o sistema operacional host, pois estaria interessado em ver se há considerações diferentes para os diferentes hosts.

    
por ArgumentBargument 21.04.2016 / 11:25

3 respostas

11

Não há desvantagem. Você pode adicionar o que precisa em termos de RAM. O mesmo para CPUs. Se você precisar de 3 vCPUs ou 4 ou 5, poderá atribuir conforme necessário.

Alguns administradores gostam de ver múltiplos de 512 e 1024, mas isso realmente não importa.

    
por 21.04.2016 / 14:16
3

Não, não há vantagens / desvantagens. Sysadmins tende a preferir o tamanho arredondado, eu faço.

Eu posso construir um sistema Linux muito pequeno e dar 403 MB de memória RAM, o sistema irá alocar o que é necessário para que ele funcione. Mas, você não encontrará módulos de ram de 403 MB, porque tudo funciona com os poderes de 2. Então, basta arredondar para o que melhor se adequa à sua compilação.

Eu costumava virtualizar o sistema operacional Windows e Linux no meu esxi e fornecia o Ubuntu 768MB e o Windows 3328MB e era bom para ambos, 4GB no total. Se eu tivesse com menos ram, eu simplesmente perderia isso.

    
por 21.04.2016 / 14:05
0

are there any disadvantages to allocating RAM in quantities that are not powers of two, or multiples thereof?

Primeiro de tudo. Lembre-se de que todo inteiro é um múltiplo de uma potência de dois. Portanto, a verdadeira questão a ser perguntada é se você deve restringir-se a certos multiplicadores ou a certos poderes de dois.

Máquinas físicas geralmente vêm com memória que é um pequeno multiplicador (1, 3 ou 5) de uma potência de dois. Mas as razões para isso não se aplicam a máquinas virtuais.

No entanto, os tamanhos de página são uma preocupação que se aplica às máquinas virtuais. Existem arquiteturas que operam exatamente com dois tamanhos de página possíveis. Arquiteturas comuns de 32 bits suportam páginas de exatamente 4KB e 4MB. Arquiteturas comuns de 64 bits suportam páginas de exatamente 4KB e 2MB.

Se você mantiver a memória alocada para uma VM sempre um múltiplo de 4MB, será mais prático para o código subjacente usar páginas grandes para otimizar o desempenho. Por essas razões, recomendo mirar em múltiplos de 4MB.

Espero que softwares projetados adequadamente arredondem tamanhos para um múltiplo de 4 MB para você, se isso for mais benéfico. Mas, se você escolher um múltiplo de 4 MB para começar, ficará menos dependente do software para acertar esses casos.

Além disso, eu digo alocar a RAM para as VMs em quantidades que são tão precisas quanto você pode prever seus requisitos. Se você prever que uma VM precisa de 500 MB a 750 MB para um desempenho ideal, aloque 752 MB. Não vejo razão para arredondar isso para 768MB ou 1024MB.

O método alocação de memória de amigos usado por alguns sistemas é projetado para funcionar com poderes de dois. No entanto, o método pode, com um pequeno esforço, ser adotado para trabalhar com tamanhos que não são uma potência de dois. Mesmo em máquinas físicas com memória do tamanho de um múltiplo de dois, ainda é provável que parte da memória física não esteja disponível para o alocador de amigos. Assim, é esperado que todos os sistemas operacionais que usam esse método garantam que outros tamanhos de memória funcionem.

    
por 24.04.2016 / 16:28