Nous avons un cluster Heartbeat / DRBD / Pacemaker / KVM / Qemu / libvirt composé de deux nœuds. Chaque nœud exécute Ubuntu 12.04 64 bits avec les packages / versions suivants:
- Kernel 3.2.0-32-generic # 51-Ubuntu SMP
- DRBD 8.3.11
- qemu-kvm 1.0 + noroms-0ubuntu14.3
- libvirt 0.9.13
- stimulateur cardiaque 1.1.7
- rythme cardiaque 3.0.5
Les invités virtuels exécutent Ubuntu 10.04 64 bits et Ubuntu 12.04 64 bits. Nous utilisons une fonction libvirt pour transmettre les capacités des CPU hôtes aux invités virtuels afin d'obtenir les meilleures performances CPU.
Voici maintenant une configuration courante sur ce cluster:
- La «surveillance» des VM a 4 vCPU
- La «surveillance» des VM utilise ide comme interface de disque (nous passons actuellement à VirtIO pour des raisons évidentes)
Nous avons récemment effectué quelques tests simples. Je sais qu'ils ne sont pas professionnels et n'atteignent pas des normes élevées, mais ils montrent déjà une tendance forte:
Le nœud A exécute la machine virtuelle "bla" Le nœud B exécute la surveillance "VM"
Lorsque nous rsynchronisons un fichier de VM "bla" vers VM "monitoring", nous n'atteignons que 12 Mo / s. Lorsque nous effectuons un simple dd si = / dev / null de = / tmp / blubb à l'intérieur de la «surveillance» de la machine virtuelle, nous atteignons environ 30 Mo / s.
Ensuite, nous avons ajouté 4 vCPU supplémentaires à la «surveillance» de la machine virtuelle et l'avons redémarrée. La «surveillance» de la VM dispose désormais de 8 vCPU. Nous avons relancé les tests avec les résultats suivants: Lorsque nous resynchronisons un fichier de VM "bla" vers VM "monitoring", nous atteignons maintenant 36 Mo / s. Lorsque nous effectuons un simple dd if = / dev / null of = / tmp / blubb à l'intérieur de la «surveillance» de la machine virtuelle, nous atteignons maintenant environ 61 Mo / s.
Pour moi, cet effet est assez surprenant. Comment se fait-il qu'en ajoutant apparemment plus de CPU virtuels pour cet invité virtuel, cela signifie automatiquement plus de performances de disque à l'intérieur de la machine virtuelle?
Je n'ai pas d'explication à cela et j'apprécierais vraiment votre contribution. Je veux comprendre ce qui provoque cette augmentation des performances car je peux reproduire ce comportement à 100%.
kvm_trace
pour voir comment le nombre de IO_Exits
changements lorsque vous modifiez les numéros de CPU. Je suppose que c'est parce que vous utilisez IDE, qui est programmé avec les CPU invités. Avec virtio, les performances doivent être cohérentes, et lorsque le plan de données est en qemu, il obtiendra un coup de pouce drastique. Une autre supposition peut être le fait que vous utilisez une distribution connue pour une pile de virtualisation de buggy.