On 03/04/2014 11:12 AM, Pasquale Dir wrote:
Hello,
I'd like to know if this is an hypervisor related problem or a libvirt one.
I did this experiment: on VM I started watching a video on youtube.
While video was in progress I started migration.
Migration did not complete until video was not finished.
Migration runs until qemu thinks that it has converged enough that your
overall downtime will be small. The more heavily loaded a guest is, the
longer it takes to converge. You can tweak the parameters that qemu
uses to determine whether convergence has happened; look at 'virsh
migrate-setmaxdowntime' and 'migrate-setspeed'. You can try using
'virsh migrate --compressed' to see if that will help reduce the amount
of traffic and therefore speed migration up (but be aware that there are
upstream fixes going into the as-yet-unreleased qemu 2.0 that fix bugs
with how qemu does compressed migration, so if you haven't backported
those fixes to your qemu, you might end up corrupting your guest).
Upstream qemu is also adding an auto-throttling option that forces the
guest to use fewer cpu cycles if convergence isn't happening fast
enough, although I'm not sure if libvirt exposes that knob yet.
Finally, you can always pause the guest manually if you are tired of
waiting for a live migration; in fact, 'virsh migrate --timeout' has a
way to force the pause at a fixed timeout.
I did another experiment: I installed a web server on VM.
I then started an httperf stress test.
As before migration did not complete until the stress test was closed.
Is this normal?
Depending on your network speed and whether you tuned any default
parameters, yes.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org