J'ai une VM fonctionnant sous Debian Woody (noyau 2.4.18). Qemu-2.1.2, 2 cœurs de CPU, 512M RAM, image qcow2 connectée comme IDE, ext3. Le problème est que les entrées-sorties du disque sont lentes. Voici le résultat de dd "benchmark" juste après le redémarrage de la VM :
(none):~# time dd if=/dev/zero of=test1 bs=102400 count=100
100+0 records in
100+0 records out
real 0m0.035s
user 0m0.000s
sys 0m0.020s
(none):~# time dd if=/dev/zero of=test1 bs=102400 count=100
100+0 records in
100+0 records out
real 0m0.022s
user 0m0.000s
sys 0m0.020s
(none):~# time dd if=/dev/zero of=test1 bs=102400 count=100
100+0 records in
100+0 records out
real 0m55.589s
user 0m0.020s
sys 0m0.560s
Si je regarde ce qui se passe sur l'hôte, je vois que le processus qemu consomme ~90% de CPU (sur un total de 600%), et que la lecture et l'écriture se font à environ 1,2MB/s. Le disque dur lui-même est correct, la vitesse d'écriture est d'environ 70 Mo/s. J'ai essayé différents paramètres VM (y compris "threading" et "usafe"), converti l'image en raw, déplacé l'image vers un système de fichiers fraîchement formaté (j'ai essayé ext4 et btrfs). Aucune différence visible.
J'ai également remarqué des problèmes de vitesse d'E/S pour d'autres VM avec des noyaux plus récents, mais je n'ai pas eu le temps de les tester correctement et j'ai utilisé le montage NFS pour contourner le problème.
Qu'est-ce qui ne va pas ?
UPD Même mount -t nfs ...
pendent. strace
dit que mount()
L'appel se bloque :
mount("192.168.1.1:/mnt/gw/tmp", "/mnt", "nfs", 0xc0ed0000, 0x805a920) = -1 ENOSYS (Function not implemented)
mount("192.168.1.1:/mnt/gw/tmp", "/mnt", "nfs", 0xc0ed0000, 0x805a920) = -1 ENOSYS (Function not implemented)
mount("192.168.1.1:/mnt/gw/tmp", "/mnt", "nfs", 0xc0ed0000, 0x805a920) = -1 ENOSYS (Function not implemented)
mount("192.168.1.1:/mnt/gw/tmp", "/mnt", "nfs", 0xc0ed0000, 0x805a920\[here it freezes for a several minutes\]) = 0