Existe uma razão para dar uma VM uma quantidade de base-2 (2048MB, 4096MB, etc) de memória?

24

O título praticamente diz tudo, existe alguma vantagem em dar uma VM 2048MB de memória ao invés de arredondar para a base-10 e fazer 2000MB?

    
por Nate 06.04.2012 / 20:29

5 respostas

10

A memória física no servidor é um múltiplo de uma potência de dois, então ele será dividido uniformemente se você usar outros múltiplos. Pode haver algumas melhorias incrivelmente pequenas com SLAT e tais, se elas estiverem alinhadas corretamente também. Caso contrário, não.

    
por 06.04.2012 / 21:09
13

O Hyper-V aloca internamente a memória em trechos de 2 MB. O hipervisor em si usará entradas de tabela de páginas de 2 MB para eficiência, se possível, se o processador suportar Conversão de Endereço de Segundo Nível (SLAT). Isso será possível para praticamente qualquer VM com Memória Dinâmica desativada.

Além disso, não, não importa.

    
por 09.04.2012 / 21:12
7

Apenas para esclarecer o que as outras respostas disseram; o limite que está sendo definido aqui é basicamente para o software de sua máquina virtual, não para o convidado. Ou seja, quando o sistema operacional convidado solicita uma página de memória, ela o faz em incrementos definidos (por exemplo, 4KB). Portanto, se você definiu a máquina virtual como tendo 4097KB de RAM e sua VM host estava usando um tamanho de página de 4KB, provavelmente concederia um total de 4100KB de RAM à máquina virtual.

Se o sistema operacional convidado, no entanto, usasse um tamanho de página de 1 KB, e seu sistema operacional host usasse um tamanho de página de 4KB, o sistema operacional essencialmente concederia 4KB de espaço, dos quais apenas 1 KB seria usado - mas isso de todos os pedaços de memória. Então, você nunca estará realmente perdendo uma quantidade perceptível de espaço.

Para notar, o alinhamento entre o sistema operacional host e o sistema operacional convidado não é um fator aqui, exceto pelos últimos "bits desativados".

    
por 07.04.2012 / 02:28
3

Eu suspeito que seja uma questão de tradição e alinhe-a com a forma como os sistemas físicos são construídos. Sistemas físicos têm memória na base 2 (e menos com cada x86 já feito, isso é verdade), e é provável que alguns, se não muitos sistemas operacionais, esperassem isso no gerenciamento de memória.

Em suma, realmente é porque uma máquina virtual reflete uma máquina real, em vez de uma máquina hipotética. Não é uma resposta muito técnica, mas acho que é a verdadeira

    
por 08.04.2012 / 05:07
1

Não realmente. A memória dinâmica do Hyper-v alocará apenas o que o sistema usa de qualquer maneira. O valor que você atribui é o valor de inicialização. Se você não estiver usando memória dinâmica, a única vantagem que posso ver é alinhar melhor a memória física ao virtual.

    
por 06.04.2012 / 20:41