Como posso simular uma máquina lenta em uma VM?


29

Estou testando um aplicativo da Web pesado para AJAX. Desenvolvo um novo Mac, mas uso o VmWare Fusion (atualmente 3.1.2) para testar no Windows XP, usando o IETester para simular versões mais antigas do IE.

Isso me permite ver como as versões mais antigas do IE renderizariam o site, mas também gostaria de ver como o site funcionaria em uma máquina mais antiga. Vejo nas configurações da VM que posso diminuir a RAM; existe uma maneira de também diminuir a velocidade do processador? De que outra forma eu posso simular uma máquina lenta?

(Também vou verificar como simular uma conexão lenta à Internet .)

Respostas:


17

O thread Limitar a velocidade da CPU em uma máquina virtual oferece alguns conselhos:

  • 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.
  • As configurações no MS hyper-V permitem limitar uma máquina virtual a uma porcentagem do host geral. 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.

O cara do PC virtual observa em Lentidão das máquinas virtuais que:

definir uma máquina virtual com um máximo de 10% de recurso da CPU no Servidor virtual (por exemplo) significa que ele só poderá executar na CPU por 10% do tempo total de agendamento do sistema durante um período de tempo. Enquanto a máquina virtual está sendo executada, ela ainda está sendo executada na velocidade total do processador (embora com menos frequência do que seria executada).

Ele sugere usar o Turbo para diminuir a velocidade da VM. Ele também sugere o uso de produtos de emulação, que são muito mais lentos que a virtualização, como DOSBox e Bochs .


7

Você pode usar cpulimit para limitar a quantidade de tempo de processamento alocada para o seu processo. Está disponível nos repositórios para a maioria das distribuições Linux.

O uso é muito simples, se, por exemplo, sua VM estiver em execução como processo 12345 e você desejar alocar apenas 5% dos ciclos de CPU, use as seguintes opções:

$ cpulimit -l 5 -p 12345

4

Realmente não é possível corresponder de forma confiável ao desempenho de uma máquina mais antiga. Mesmo se você conseguir diminuir o uso da CPU e o tamanho da memória , como você diminuirá a velocidade do FSB ou a velocidade da memória ?

Dito isto, você pode usar a ferramenta de gerenciamento de processos de um Mac para limitar o uso da CPU do próprio VMWare Fusion. Se você fizer isso o suficiente para emular uma máquina antiga, todo o aplicativo VMWare provavelmente será executado muito lentamente - exatamente como uma máquina vintage pronta para XP.

Não sei qual é o programa gráfico para Mac, mas veja se o seu Mac suporta o renicecomando: Abra um terminal e digite man renicepara ler sobre como ele funciona em um Mac.

A propósito, as máquinas prontas para XP provavelmente são muito baratas agora. Provavelmente, um verdadeiro poderia ser adquirido por ~ $ 75. Em seguida, você pode transferir sua máquina virtual para uma real ...


2
Ha! Idéia interessante para comprar uma máquina real. Como toda a idéia é emular um computador antigo, a compra de um computador antigo é uma opção bastante barata. :)
Nathan Long

2

Isso realmente depende de quão lenta é a máquina que você deseja emular. Se você reverter o XP de volta para 128 MB de RAM, será dolorosamente lento, a ponto de não ter certeza se a velocidade do processador virtual será realmente relevante. Você também pode executar os arquivos da VM em um disco rígido externo USB1 antigo (veja se consegue encontrar uma unidade de 4200 RPM). Isso deve desacelerar as coisas.


2

Uma maneira infalível de tornar uma VM lenta é inicializar o maior número possível de clones possível!

Seu processador, FSB, RAM e todos os outros componentes rápidos de sua máquina serão divididos e divididos entre as outras VMs (contanto que você os faça fazendo algo intensivo - um dos protetores de tela openGL, por exemplo), e você sentirá como você está em 1990 de novo ...


Simples e bastante eficaz.
rola

1

Instale um pequeno utilitário na VM XP convidada para controlar a frequência da CPU usando a comutação de frequência dinâmica integrada do XP. Por exemplo, um utilitário como o SpeedswitchXP . Eu nunca tentei algo assim sozinho e pode haver problemas potencialmente se a CPU virtual que o VMWare apresentar à VM convidada não oferecer suporte à alternância dinâmica de frequência.


1
Receio que isso tenha pouco efeito para uma VM, onde a CPU é apenas emulada.
harrymc

1
Sim, não acho que mudar a frequência seja uma opção; ou não funcionaria (provavelmente) ou estrangularia todo o sistema operacional (impossível?).
jpaugh

0

Gostaria de ter a ideia de usar um segmento de loop infinito com um comando de suspensão ajustável e definir a prioridade do processo. Se você quiser que eu dê um tapa rápido em um código C, avise-me.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.