O Windows XP sendo executado como convidado no Linux VirtualBox é muito lento

1

Tivemos um servidor Windows XP antigo executando um banco de dados Filemaker em uma CPU Intel de 2,6 GHz, mas esse servidor morreu. Ele foi substituído por uma caixa com dois processadores Xeon de 2,4 GHz e 5 GB de RAM que rodam o Ubuntu 11.04 nativamente, e o Windows está sendo executado como um convidado do VirtualBox. 2 GB de RAM foram dedicados ao convidado do Windows.

Claro, essas antigas CPUs Xeon não têm as extensões VT-x, então eu não esperaria poder adicionar CPUs ao convidado VirtualBox, mas o banco de dados Filemaker está rodando pelo menos 2-3x mais lento que ele fez no servidor antigo. Eu esperaria que utilizando uma CPU de 2.4GHz de quatro disponíveis não deve resultar em uma diferença tão surpreendente.

Eu também gostaria de poder continuar usando esta configuração, pois isso também significaria que poderíamos remover nosso servidor Linux do rack, que está rodando em um hardware ainda mais lento (não que os requisitos do sistema sejam altos para o seu trabalho embora).

Então minha pergunta é: Por que isso é tão lento? Existe alguma coisa que eu possa fazer para mudar a situação? Ou devo desistir agora e encontrar um hardware mais adequado?

Por favor note: Eu entendo que a "nova" máquina deve ser cerca de 1% mais lenta na teoria , então por favor não me diga que "deveria" estar bem. Eu preciso de respostas mais concretas (como em "Eu tentei isso antes e você deveria fazer X") já que no mundo real, parece ser cerca de 50% mais lento. Estou prestes a culpar CPUs "virtuais" por multithreading em processadores de núcleo único e, possivelmente, a diferença na arquitetura de CPU entre CPUs Xeon e Pentium 4.

    
por Ernie Dunbar 09.08.2011 / 19:58

4 respostas

1

Essas CPUs devem ter VT, então se você tiver uma BIOS que não permita que você a ligue, então vá para outra caixa que permite que você ligue o VT. Você não deve tentar executar convidados do Windows sem VT.

Bancos de dados geralmente são limitados por duas coisas. Em primeiro lugar a velocidade do disco, e em segundo lugar, a disponibilidade de RAM para armazenar em cache os dados que eles lêem do disco. É possível que a caixa antiga tenha sido otimizada para servir o banco de dados com um disco rígido rápido e agora você está em um servidor com um disco rígido de desktop lento? Parece que você tem uma quantidade razoável de RAM se o servidor convidado tiver 2 G disponíveis, a menos que essa máquina tenha uma demanda muito alta. Quantos usuários acessam de uma só vez?

Se você clonou o disco rígido do Windows para fazer a VM, é possível que haja alguma configuração que esteja dificultando a vida. A velha máquina tem 2 núcleos? Se assim for, então seria uma boa idéia testar o fornecimento dos núcleos da VM 2 porque o XP ou o Filemaker podem ser configurados para esperar isso.

    
por 14.08.2011 / 08:30
0

A execução do XP no VirtualBox em um Pentium-4 é realmente boa, com velocidade, contanto que não se baseie em disco rígido de E / S. Seus Xeons devem estar mais do que à altura da tarefa, com ou sem extensões de VT. O problema é o disco IO.

Se você pode montar um compartilhamento de samba a partir de um servidor de arquivos veloz, e o FileMaker fica feliz em usá-lo para seus dados, isso será realmente um grande aumento de velocidade.

Além disso, verifique se você tem os drivers de caixa virtual instalados na VM. Se não estiverem, instalá-los deve ser outro impulso de velocidade considerável.

Se você puder, coloque os arquivos .vdi para a VM em sua própria unidade. Isso irá isolá-lo de parte da sobrecarga de IO. Mesmo se você tiver os arquivos do criador de arquivos em um compartilhamento de samba rápido, o Windows lê e grava o tempo todo (swapfile anyone?).

E você provavelmente deseja dar à VM apenas uma CPU virtual; o comentarista anterior está certo, adicionar mais neste caso provavelmente atrasará as coisas, não as acelerará.

Boa sorte.

    
por 16.08.2011 / 02:25
0

Eu descobri pessoalmente que, embora o Virtual Box seja um ótimo produto, existem algumas partes dele que não funcionam bem em comparação com o bare metal.

O primeiro passo seria tentar descobrir onde está o gargalo de desempenho. É E / S de disco ou E / S de rede?

Se você perceber uma fraca E / S de rede, considere usar os drivers paravirtualizados para o VB.

Embora versões recentes do VB tenham melhorado dramaticamente, os drivers paravirtualizados são o caminho a percorrer para obter o melhor desempenho.

Esteja ciente também de que os aplicativos de banco de dados usam muito o disco. Seu disco provavelmente não é uma unidade nativa, certo? mais como um arquivo em um sistema de arquivos, então há mais sobrecarga nisso.
Considere usar o disco bruto do convidado. Veja aqui: link

Em Configuração Avançada de Armazenamento. Espero que isso ajude.

    
por 17.08.2011 / 02:05
0

Eu tenho um convidado do windows xp com várias CPUs e também é lento. Eu suspeito que a implementação de IO APIC do Virtualbox é lenta. Eu encontrei alguns benchmarks em uma configuração similar à sua (mesmo uma idade similar): link

Você provavelmente precisará reinstalar a VM do zero com apenas uma CPU; Eu acho que o XP requer o IO APIC ao suportar configurações SMP.

Além disso, se você usar uma CPU mais recente em vez dessas duas CPUs mais antigas, você provavelmente obterá um aumento de desempenho porque o trabalho por ciclo de clock aumentará.

    
por 30.03.2013 / 02:25