O SLES Hyper-V-Guest não está vendo toda a RAM

1

Eu tenho um problema com o meu Hyper-V-Guest, um sistema SLES, em um host padrão do Windows 2016. No Hyper-V, eu atribuí 120000MB de memória a esta máquina. Mas se eu digitar free -m no convidado do SLES, recebo a seguinte saída: %código% Então, apenas 66 GB de RAM.

Eu tentei ligar / desligar a memória dinâmica, NUMA, alterei os parâmetros NUMA, mas não obtive sucesso. Ao mesmo tempo, mais memória foi mostrada por total used free shared buffers cached Mem: 67961 2038 65923 219 11 807 -/+ buffers/cache: 1219 66742 Swap: 122879 0 122879 , mas depois de um reinício eu tive o mesmo problema novamente.

No host do Windows, a memória é alocada, portanto, se eu iniciar a VM (nenhuma outra VM nesse host), vejo 124/256 GB em uso.

No momento, estou sem ideias.

Edit: Eu iniciei uma máquina Ubuntu como convidada com as mesmas configurações, e ela mostra a quantidade correta de RAM. Eu tenho a VM SLES como uma imagem vmWare e converti o arquivo de disco para o Hyper-V. Eu agora atualizei o sistema SLES, que substituiu o kernel específico do vmWare por um simples (se vi isso corretamente), mas o problema ainda é o mesmo.

    
por GxB 09.05.2017 / 13:24

1 resposta

0

Às vezes, postar uma pergunta na internet dá algumas ideias novas.

Encontrei a seguinte mensagem no log do Linux:

dmesg | grep -i memory WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losng 51008MB of RAM

Eu não sei se a Microsoft fornece um Hyper-V-BIOS defeituoso, ou se o Linux está errado aqui, ou se é uma combinação de ambos. O problema é que o MS-stack está atualizado e não posso atualizar o kernel do Linux porque o software em execução na VM precisa dessa versão.

Solução alternativa: em vez de aumentar a RAM, reduzi-a para 40 GB. Isso não aciona a mensagem de erro do Linux. Quando inicio o aplicativo de negócios que desejo executar na VM, o Hyper-V atribui dinamicamente mais memória (no meu caso, até 105 GB) à máquina virtual sem problemas. Horray!

    
por 09.05.2017 / 23:45