Eu configurei dois sistemas convidados, uma caixa do Ubuntu dedicada a ser um host VM. Possui dois processadores físicos (com 6 núcleos cada), 16 GB de RAM e 3 discos rígidos. O sistema operacional host está em um SSD de 60 GB, enquanto os sistemas operacionais convidados estão em seu HDD separado particionado em duas partições. A primeira partição contém um arquivo de imagem qcow bruto para o sistema operacional convidado, e a segunda partição é atribuída como um dispositivo de bloco ao convidado. (para "programas" e "dados") Tenho o balão de memória ativado no convidado Linux, mas não no Windows.
Ontem tive minha primeira experiência de falta de memória, então decidi observar o uso de memória dos convidados em tempo real no meu próprio computador. Então eu tenho dois htops rodando em duas janelas de massa, como você pode ver na imagem anexa. No topo da foto está o host, na parte inferior está um dos convidados (o linux). Há algumas coisas que não entendo:
- no host, a coluna RES diz 5778M para o primeiro convidado e 4274M para o outro, o que para mim anuncia até ~ 10G, mas a linha Mem na parte superior da imagem diz 6,9G, o que é estranho, além disso, o cliente htop na parte inferior diz que 560M de memória está em uso. (560 milhões! = 5778 milhões)
Eu li os documentos do redhat sobre virtualização e dizem que devo calcular a quantidade de RAM necessária para o convidado somando a memória alocada para o convidado + RAM de vídeo + "alguma" sobrecarga (que não pode ser determinada exatamente). os números acima: 560M estão em uso pelo convidado + 16M de memória de vídeo é ~ 580M, então a sobrecarga "alguma" no meu caso é 5,2G?
O 5778M não é a memória total que o convidado Linux pode usar, 8G está definido no arquivo xml do domínio, então não estou frustrado. Ainda.
Quando reiniciei o convidado Linux esta manhã, ele começou com uso de aproximadamente 2G de RAM no host e tem aumentado desde então. O SO convidado começou com ~450M e foi para 560M.
Eu até li que atribuir um arquivo de troca ao host pode ajudar com problemas de falta de memória, então criei um arquivo de troca de 32G e configurei a troca para 20 no sysctl no host.
Mas ainda não entendo esse uso/alocação de memória/qualquer coisa entre o convidado e o host.
Alguém com mais experiência neste campo poderia me indicar a direção certa/tutorial/wikipedia/whatevertoread? qemu host convidado htops