virt:optimisations

Ceci est une ancienne révision du document !


Optimisation des performances pour les machines virtuelles KVM

VirtIO permet d'utiliser des techniques de paravirtualisation pour les points critiques:

  • périphériques bloc
  • interfaces réseau

Si le système de l'invité le supporte, il est recommandé d'utiliser des périphérique VirtIO qui permettent en générale d'augmenter les performances, où à performance égale, de diminuer la charge CPU en supprimant l'émulation de périphérique. VirtIO a été intégré dans le noyau linux 2.6.25, tout les invités ayant un noyau supérieur à cette version peuvent l'utiliser. Certaines distributions disposent de VirtIO avec un noyau plus ancien (backport) (ex: CentOS 5, RHEL5)

Il semble qu'il y ait un problème entre le scheduler I/O CFQ et VirtIO. Si des machines virtuelles utilisent VirtIO, il est conseillé de passer le scheduler des disque de l'hôte en deadline: (à placer dans /etc/rc.local après avoir vérifié le gain de performance)

for d in sdc sdd sde sdf;do echo deadline > /sys/block/$d/queue/scheduler;done

Il est conseillé d'utiliser LVM comme backend pour les disques des invités (un volume logique = un disque virtuel) au lieu d'utiliser des images (en tant que fichier). Les avantages sont:

  • meilleurs performances, car il n'y a plus d'empilement de système de fichiers
  • sauvegardes plus aisées: utilisation de snapshots et sauvegarde directe du périphérique bloc
  • virt/optimisations.1269045007.txt.gz
  • Dernière modification: 20/03/2010 01:30
  • de dani