On 2013-08-26(Mon) at 11:53(+0200), Jiri Denemark wrote:
On Mon, Aug 26, 2013 at 15:30:33 +0800, Li Wei wrote:
> Since commit 6cfdeaac("qemu: Migrate at unlimited speed by default"),
> we set an unlimited migration bandwidth unconditionally, this change will
> cause problem when doing "--copy-storage-all" migration, qemu will
> submit as much block aio request as bandwidth allowed and use too much
> memory and finally killed by the oom-killer.
>
> Actually, we should only set migration speed when user specified it,
> otherwise, we let qemu use its default settings.
I don't think this is a good idea. QEMU's default migration bandwidth is
very low and IMHO anyone doing migration expects it to run at wire speed
unless they explicitly limit the bandwidth. If it doesn't work with
storage migration (is it using NBD or not?), we may add special handling
for that.
No NBD, just plain img file.
Yes, migrate at wire speed is a good thing, but QEMU's block migration
doesn't work that way, QEMU's block migration separated to two parts, one
submit block read request as bandwidth allowed, the other send data to
socket(or fd) in the callback of read request. The second part may be
limited by the socket send speed, but the first part only limited by
the bandwidth we set. So, with an unlimited bandwidth, QEMU will submit
too much read request.
Maybe I am missing something, now I have no good idea to add any special
handling for that.
Thanks,
Wei