Limitando a velocidade da CPU em uma máquina virtual?

27

Alguém sabe de uma maneira de limitar a velocidade da CPU em uma máquina virtual? Ou se houver um software de virtualização que permita fazer isso?

Estou tentando encontrar os requisitos mínimos para um sistema, considerando uma imagem do sistema operacional específica que possuo. Vejo maneiras de limitar a RAM, o tamanho do disco rígido e o número de núcleos, mas preciso diminuir a velocidade do processador para 800 MHz para realmente simular a configuração do sistema. Além disso, o computador que executa a máquina virtual é uma máquina com Windows 7.

    
por RCC 01.04.2011 / 15:51

8 respostas

19

Fui encarregado do mesmo problema e instalei o Oracle VirtualBox no Windows 7 (como host) e no Ubuntu (como convidado). Eu usei um laptop autônomo, 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 clock (identificada como "Execution Cap") deslizando o indicador na barra até o limite de 1%.

Eu assumi que o sistema operacional host (Windows 7 no meu caso) não estava consumindo nenhum clock (eu confirmei isso verificando o "Gerenciador de Tarefas" e eu encontrei a utilização da CPU ZERO na máquina host. Windows 7 no meu caso ). Portanto, eu aspus 100% "limite de execução" é igual ao da máquina hospedeira (por exemplo, 1,87 GigHZ). Eu acho que pegando uma porcentagem entre a velocidade do relógio da máquina host e 800 MHZ, você é capaz de descobrir o valor percentual que corresponde a 800 MHz.

Espero que isso ajude.

Melhor da sorte.

    
por 07.12.2012 / 21:10
9

No VMWare ESX e ESXi, você pode criar um pool de recursos e limitar os recursos da CPU para esse pool. Isso permitiria limitar a velocidade da CPU de qualquer sistema criado nesse pool de recursos.

    
por 01.04.2011 / 16:34
5

Compilado e usado: cpulimit que funcionou como um encanto para diminuir a VM.

    
por 21.11.2012 / 14:42
2

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. Então, se você tem um host de 8 núcleos rodando a 2 GHz, você pode tentar limitar a máquina virtual do cliente a um núcleo e não mais do que 45% do núcleo.

No entanto, isso seria muito grosseiro e não seria adequado se você estivesse tentando testar loops de tempo ou algo em que a velocidade real do processador entra em ação.

    
por 01.04.2011 / 16:08
2

- cpuexecutioncap < 1-100 & gt ;: Esta 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.

    
por 07.10.2014 / 19:33
1

Posso confirmar que isso não é suportado no VirtualBox. No entanto, a documentação parece ser duvidosa se VMware é ou não capaz de fazer isso.

EDITAR: Para VMware: "Isso não é possível com os produtos Player e Server, mas acredito que esteja no ESXi (o produto gratuito" hypervisor bare-metal ") e nos produtos pagos como o VMWare Workstation."

    
por 01.04.2011 / 16:06
1

Você pode simular isso com a pinagem da CPU. Em seguida, crie alguns processos de limite de CPU fixados na mesma CPU. A velocidade estimada da CPU é (velocidade real da CPU / nº 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.

    
por 01.04.2011 / 16:39
0

No VirtualBOX, há um controle deslizante onde você pode configurar a% da CPU do host que a CPU convidada pode usar. Esse percentual se aplica a cada núcleo.

No VirtualBOX não há como simular um multi-core com velocidades diferentes em cada core, apenas um slider para todos os núcleos.

Definir o controle deslizante em 50% fará com que os núcleos convidados sejam executados em 1/2 de núcleos host (um básico por núcleo).

Então, se você tiver um deca core (10 núcleos) no host e um tri core no guest (três), e você deseja guest rodar em X MHz enquanto o host executa em Y MHz, ignore o número de núcleos para calcular o por cento.

A fórmula seria: Porcentagem = 100 * X / Y

Espero que isso também ajude outras pessoas a virem para o futuro.

    
por 11.05.2018 / 11:34