Temos um cluster Heartbeat / DRBD / Pacemaker / KVM / Qemu / libvirt que consiste em dois nós. Cada nó executa o Ubuntu 12.04 64 Bit com os seguintes pacotes / versões:
- Kernel 3.2.0-32-generic # 51-Ubuntu SMP
- DRBD 8.3.11
- qemu-kvm 1.0 + noroms-0ubuntu14.3
- libvirt 0.9.13
- pacemaker 1.1.7
- heartbeat 3.0.5
Os convidados virtuais estão executando o Ubuntu 10.04 64 Bit e o Ubuntu 12.04 64 Bit. Utilizamos um recurso libvirt para transmitir os recursos das CPUs host aos convidados virtuais, a fim de obter o melhor desempenho da CPU.
Agora, aqui está uma configuração comum neste cluster:
- O "monitoramento" da VM possui 4 vCPUs
- O "monitoramento" da VM usa o ide como interface de disco (atualmente estamos mudando para o VirtIO por motivos óbvios)
Recentemente, fizemos alguns testes simples. Sei que eles não são profissionais e não alcançam altos padrões, mas já mostram uma forte tendência:
O nó A está executando a VM "bla" O nó B está executando a "monitoração" da VM
Quando sincronizamos um arquivo da VM "bla" para a "monitoração" da VM, atingimos apenas 12 MB / s. Quando executamos um dd simples se = / dev / null de = / tmp / blubb dentro do "monitoramento" da VM, atingimos cerca de 30 MB / s.
Em seguida, adicionamos mais 4 vCPUs à "monitoração" da VM e a reiniciamos. A "monitoração" da VM agora possui 8 vCPUs. Executamos novamente os testes com os seguintes resultados: Quando sincronizamos novamente um arquivo da VM "bla" para a "monitoração" da VM, atingimos 36 MB / s. Quando executamos um dd simples se = / dev / null de = / tmp / blubb dentro do "monitoramento" da VM, atingimos agora cerca de 61 MB / s.
Para mim, esse efeito é bastante surpreendente. Como é que, aparentemente, adicionar mais CPUs virtuais a esse convidado virtual significa automaticamente mais desempenho do disco dentro da VM?
Não tenho uma explicação para isso e realmente aprecio sua opinião. Quero entender o que causa esse aumento de desempenho, pois posso reproduzir esse comportamento 100%.
kvm_trace
para ver como o número de IO_Exits
alterações é alterado quando você altera os números da CPU. Eu acho que é porque você está usando o IDE, que é agendado com as CPUs convidadas. Com o virtio, o desempenho deve ser consistente e, quando o plano de dados estiver no qemu, obterá um impulso drástico. Outro palpite pode estar no fato de você estar usando uma distribuição conhecida por uma pilha de virtualização de buggy.