Opções para otimizar a emulação do QEMU (sinalizador -cpu)

2

Eu tenho feito algumas leituras sobre como otimizar o QEMU e uma coisa sobre a qual estou confuso é a opção -cpu .

No momento, estou usando -cpu host , que deve transferir todos os recursos de cpu do host para o convidado, mas alguns dizem que ele faz mais do que isso e oferece aos convidados recursos extras que o host pode não suportar. Isso leva à emulação de software dos recursos que poderiam desacelerar a VM.

Outro artigo ( link ) diz para usar a opção qemu32 cpu e, em seguida, anexar todos opções adicionais específicas do processador que o host suporta.

Qual método realmente otimiza melhor o processador virtual? E há sinalizadores específicos que o processador qemu32 já implementa e que eu não preciso incluir manualmente ou devo incluir todos os sinalizadores de /proc/cpuinfo ? Da mesma forma eu deveria estar usando o processador virtual qemu32 se eu estou executando um convidado de 64 bits?

Obrigado por qualquer ajuda.

    
por user315225 13.11.2015 / 21:30

1 resposta

1

Primeiro, não acredito em tudo que você lê na Internet. A maior parte é uma porcaria.

Porém, parece que -cpu host de fato se comporta da maneira que você descreve. Pelo menos, uma nota no wiki do qemu afirma que eles pretendem se comportar dessa maneira.

all-you-can-enable: Enable every single bit that can be enabled, including the ones not present on the host but that can be emulated.

-cpu host will be the "all-you-can-enable" mode, that will enable every bit from GET_SUPPORTED_CPUID on the VCPU

Eles também notam que, se você quer mais controle sobre o modelo da CPU, essa libvirt é o caminho a seguir.

E, segundo, fora de circunstâncias muito raras eu nunca tentaria executar o qemu diretamente eu mesmo. Em vez disso, é melhor usar libvirt (conforme recomendado) e um de seus front ends, como virsh ou virt-manager, pois eles fornecem controle total sobre a máquina virtual com uma interface muito mais fácil de usar (no caso do virt-manager ).

Emparticular,libvirté capaz de fazer o que você quer: copiar os recursos da CPU host para o convidado exatamente, sem ativar recursos que não existem e devem ser emulados (usando host-passthrough , embora na maioria das vezes host-model seja suficiente).

Quanto ao qemu32, o padrão do qemu é qemu64, então não vejo o que você poderia ganhar, exceto talvez uma enxaqueca, alterando isso para qemu32.

    
por 14.11.2015 / 01:13