Optimisation des performances pour les machines virtuelles KVM

VirtIO

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)

Problème CFQ/VirtIO

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

LVM comme backend