From: Anthony Liguori <aliguori@us.ibm.com>
To: dlaor@redhat.com
Cc: Glauber Costa <glommer@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] augment info migrate with page status
Date: Thu, 21 May 2009 08:14:23 -0500 [thread overview]
Message-ID: <4A1553AF.2000707@us.ibm.com> (raw)
In-Reply-To: <4A152B51.2080600@redhat.com>
Dor Laor wrote:
>> static ram_addr_t ram_save_threshold = 10;
>> +static ram_addr_t pages_transferred = 0;
>>
>
> It would be nice to zero pages_transferred each migration operation.
> ram_save_threshold is really to small. From Uri's past measurements,
> as value of 50 is a
> better suite. Alternately it can be parametrized by the monitor command.
>
> In general there is small drawback in the current approach:
> The way bandwidth is capped, iirc, in every second you start
> consuming migration
> bandwidth. If the bandwidth allocation was consumed after 100msec,
> you'll wait 900msec.
> In this period, mgmt app reading the ram_save_remaining will notice
> that migration does
> not progress and might either increase bandwidth or stop the guest.
> That's why #of no-progress-iteration has advantage.
If I were implementing this in libvirt, here's what I would do:
B = MB/sec bandwidth limit
S = guest size in MB
C = some constant factor, perhaps 4-5
T = S / B * C
1) Wait for T seconds or until migration completes.
2) If timeout occurred:
a) M = actual transfer rate for migration in MB/sec
b) If M < B, T1 = S / M * C
c) T = T1 - T
d) If T <= 0, migration failed
d) else goto 1
Basically, this institutes a policy that a migration must complete after
transferring C * guest_size amount of data. It adjusts for observed
bandwidth rate vs. capped. It makes sense from an administrative
perspective because you are probably only willing to waste so much
network bandwidth on attempting to migrate. Obviously, C and B are
tunables that heavily depend on the relatively priority of the migration.
Whether you force a non-live migration after failure of a live migration
is an administrative decision.
--
Regards,
Anthony Liguori
next prev parent reply other threads:[~2009-05-21 13:14 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-20 23:20 [Qemu-devel] [PATCH] augment info migrate with page status Glauber Costa
2009-05-21 10:22 ` Dor Laor
2009-05-21 13:14 ` Anthony Liguori [this message]
2009-05-21 13:52 ` Glauber Costa
2009-05-21 14:40 ` Avi Kivity
2009-05-21 14:05 ` Daniel P. Berrange
2009-05-21 14:20 ` Glauber Costa
2009-05-21 14:58 ` Avi Kivity
2009-05-21 15:04 ` Daniel P. Berrange
2009-05-21 16:07 ` Glauber Costa
2009-05-21 23:41 ` [Qemu-devel] QEMU Official OS Support PAge Natalia Portillo
-- strict thread matches above, loose matches on Subject: below --
2009-05-21 18:26 [Qemu-devel] [PATCH] augment info migrate with page status Glauber Costa
2009-05-21 19:17 Glauber Costa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A1553AF.2000707@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=dlaor@redhat.com \
--cc=glommer@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).