Fui encarregado do mesmo problema e instalei o Oracle VirtualBox no Windows 7 (como host) e Ubuntu (como convidado). Usei um laptop independente, o HP EliteBook 8540W com o Intl Core i7, rodando a 1,87 GigHZ e 8Gig RAM.
Supondo que sua instalação funcione corretamente, na sua máquina Guest (por exemplo, no meu caso, Ubuntu), selecione "Configurações ..." em "Máquina" no menu principal; selecione "Sistema" e clique na guia "Processador". Você pode ajustar a velocidade do relógio (denominada "Execution Cap") deslizando o indicador na barra até 1%.
Eu assumi que o sistema operacional host (Windows 7 no meu caso) não estava consumindo nenhum ciclo de clock (confirmei isso verificando o "Gerenciador de tarefas" e encontrei a utilização da CPU ZERO na máquina host .ie Windows 7 no meu caso). Portanto, aspirei 100% do "limite de execução" igual ao da máquina host (por exemplo, 1,87 GigHZ). Penso que, calculando uma porcentagem entre a velocidade do relógio da máquina host e 800 MHZ, você pode descobrir o valor percentual que corresponde a 800 MHZ.
Eu espero que isso ajude.
Boa sorte.
Compilado e usado: cpulimit, que funcionou como um encanto para diminuir a velocidade da VM.
fonte
Embora eu não seja especialista em todas as diferentes tecnologias de virtualização, acho improvável que você encontre essa configuração. No entanto, você encontrará configurações (pelo menos no MS hyper-V) que permitem limitar uma máquina virtual a uma porcentagem das ações gerais das máquinas host. Portanto, se você tiver um host de 8 núcleos em execução em 2 GHz, tente limitar a máquina virtual do cliente a um núcleo e não mais que 45% do núcleo.
No entanto, isso seria muito grosseiro e inadequado se você estiver tentando testar loops de temporização ou algo em que a velocidade real do processador entra em jogo.
fonte
--cpuexecutioncap <1-100>: Essa configuração controla quanto tempo de CPU uma CPU virtual pode usar. Um valor de 50 implica que uma única CPU virtual pode usar até 50% de uma única CPU host.
fonte
Posso confirmar que isso não é suportado no VirtualBox. No entanto, a documentação parece duvidosa se o VMware pode ou não fazer isso.
EDIT: Para VMware: "Isso não é possível com os produtos Player e Server, mas acredito que esteja no ESXi (o produto gratuito" bare-metal hypervisor ") gratuito e nos produtos pagos, como o VMWare Workstation".
fonte
Você pode simular isso com a fixação da CPU. Em seguida, crie alguns processos vinculados à CPU fixados na mesma CPU. A velocidade estimada da CPU é (velocidade real da CPU / número de processos).
Alguns softwares de limitação de recursos permitem limitar as porcentagens de recursos. Isso tornaria mais fácil limitar a velocidade da CPU. Para fazer isso, você precisa desativar o acesso a recursos extras.
fonte
No VirtualBOX, existe um controle deslizante no qual você pode configurar a% da CPU do host que a CPU convidada pode usar. Essa porcentagem se aplica a cada núcleo.
No VirtualBOX, não há como simular um núcleo múltiplo com velocidades diferentes em cada núcleo, apenas um controle deslizante para todos os núcleos.
Definir o controle deslizante em 50% fará com que os núcleos convidados sejam executados em 1/2 dos núcleos do host (por princípios básicos).
Portanto, se você possui um núcleo deca (10 núcleos) no host e um tri núcleo no convidado (três), e deseja que o convidado seja executado em X MHz enquanto o host é executado em Y MHz, ignore o número de núcleos para calcular a porcentagem.
A fórmula seria: Porcentagem = 100 * X / Y
Espero que isso também ajude outras pessoas que virão aqui no futuro.
fonte