Estou executando o Windows 10 no Virtualbox em um host Ubuntu (18.04). É um desktop pessoal antigo (9 anos, mas forte e originalmente de alta especificação) sendo usado inesperadamente para o trabalho.
Atualmente, estou usando-o principalmente para processamento de dados leves (por exemplo, plotagem de gráficos no OriginLab), e o desempenho dos utilitários básicos do Windows é apenas aceitável com 2 threads (de 8) e 4 GB de RAM (de 16). O host é meu sistema operacional principal e está OK com 6 núcleos/12 GB, mas definitivamente sofreria se eu desse a maioria dos recursos para a VM.
Prevejo a necessidade de executar análises mais significativas e softwares mais exigentes na VM (modelagem 3D do Autodesk Inventor), portanto, gostaria de aumentar o desempenho de uma sessão. Posso facilmente reiniciar a VM em antecipação a isso. Todos os dados são armazenados em uma pasta acessível ao host e a todos os sistemas operacionais convidados (também tenho um antigo convidado do Ubuntu para executar algo proprietário e não mais suportado). O Windows parece ser capaz de lidar com a inicialização em diferentes rações de hardware da última vez sem problemas em breves testes.
Como é uma máquina pessoal, uma grande atualização de hardware está fora de questão - portanto, não há nova CPU/placa-mãe. Uma atualização de RAM pode ser possível, mas todos os slots estão cheios (4x4 GB), então ~ £ 50 me levaria a 24 GB ou ~ £ 100 para maximizar a placa-mãe em 32 GB, provavelmente estou limitado pela CPU.
Qual é a minha melhor opção para poder alternar uma VM do Windows entre operação de baixa especificação e alta especificação? Eu considerei:
- Clonando a VM, definindo um clone de alta especificação e um clone de baixa especificação e escolhendo qual inicializar
- Desvantagens - espaço em disco, cada atualização do Windows precisa ser executada duas vezes
- Alterar as configurações da mesma VM antes da inicialização
- Desvantagens: aborrecimentos sempre. Se eu esquecer de desativar as configurações do convidado, o host ficará muito lento.
- Isso poderia ser roteirizado?
- Existe outra opção que eu perdi?
Desde um conjunto recente de atualizações para o Windows e o software para o qual o uso, tenho o mesmo problema em uma máquina mais recente com o Ubuntu 20.04 como host
Como costuma acontecer, a solução foi simples assim que descobri o comando mágico.
As VMs do VirtualBox podem ser modificadas e iniciadas usando
vboxmanage
; as configurações são armazenadas em um arquivo xml que pode ser (mas não deve ser) editado diretamente. Com isso em mente, a solução é um par de scripts de shell:Win10Hi.sh:
(12 GiB leva a uma inicialização abortada, provavelmente porque o host não pode dedicar tanto)
e Win10Lo.sh:
É necessário um pouco de cuidado ou experimentação em relação ao número de CPUs - o manual diz que deve ser o número de núcleos físicos excluindo hyperthreading, mas o número definido
vboxmanage
no arquivo de configuração reflete isso na GUI e inclui hyperthreading na contagem de núcleos disponíveis .