From: Lei Li <lilei@linux.vnet.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: aarcange@redhat.com, quintela@redhat.com, qemu-devel@nongnu.org,
mrhines@linux.vnet.ibm.com, mdroth@linux.vnet.ibm.com,
Anthony Liguori <aliguori@amazon.com>,
lagarcia@br.ibm.com, rcj@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 0/17 v2] Localhost migration with side channel for ram
Date: Fri, 25 Oct 2013 20:24:07 +0800 [thread overview]
Message-ID: <526A62E7.9080201@linux.vnet.ibm.com> (raw)
In-Reply-To: <526A1DF8.2040406@redhat.com>
On 10/25/2013 03:30 PM, Paolo Bonzini wrote:
> Il 25/10/2013 06:58, Lei Li ha scritto:
>> Right now just has inaccurate numbers without the new vmsplice, which
>> based on
>> the result from info migrate, as the guest ram size increases, although the
>> 'total time' is number of times less compared with the current live
>> migration, but the 'downtime' performs badly.
> Of course.
>> For a 1GB ram guest,
>>
>> total time: 702 milliseconds
>> downtime: 692 milliseconds
>>
>> And when the ram size of guest increasesexponentially, those numbers are
>> proportional to it.
>>
>> I will make a list of the performance with the new vmsplice later, I am
>> sure it'd be much better than this at least.
> Yes, please. Is the memory usage is still 2x without vmsplice?
>
> I think you have a nice proof of concept, but on the other hand this
> probably needs to be coupled with some kind of postcopy live migration,
> that is:
>
> * the source starts sending data
>
> * but the destination starts running immediately
>
> * if the machine needs a page that is missing, the destination asks the
> source to send it
>
> * as soon as it arrives, the destination can restart
>
> Using postcopy is problematic for reliability: if the destination fails,
> the virtual machine is lost because the source doesn't have the latest
> content of memory. However, this is a much, much smaller problem for
> live QEMU upgrade where the network cannot fail.
>
> If you do this, you can achieve pretty much instantaneous live upgrade,
> well within your original 200 ms goals. But the flipping code with
> vmsplice should be needed anyway to avoid doubling memory usage, and
Yes, I have read the postcopy migration patches, it does perform very
good on downtime, as just send the vmstates then switch the execution
to destination host. And as you pointed out, it can not avoid
doubling memory usage.
The numbers list above are based on the old vmsplice as I have not yet
worked on the benchmark for performance, it actually copys data rather
than moving. As the feedback for this version is positive, now I am
trying to get a real result out with the new vmsplice.
BTW, kernel side is looking for huge page solution for the improvement of
performance.
The recently patches from kernel as link,
http://article.gmane.org/gmane.linux.kernel/1574277
> it's looking pretty good in this version already! I'm relieved that the
> RDMA code was designed right!
I am happy with it too. :)
Those RDMA hooks really make thingsmore flexible!
> Paolo
>
--
Lei
next prev parent reply other threads:[~2013-10-25 12:24 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-22 3:25 [Qemu-devel] [PATCH 0/17 v2] Localhost migration with side channel for ram Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 01/17] rename is_active to is_block_active Lei Li
2013-10-24 13:46 ` Paolo Bonzini
2013-10-25 4:10 ` Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 02/17] QAPI: introduce magration capability unix_page_flipping Lei Li
2013-10-24 13:52 ` Paolo Bonzini
2013-10-25 4:11 ` Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 03/17] migration: add migrate_unix_page_flipping() Lei Li
2013-10-24 13:54 ` Paolo Bonzini
2013-10-22 3:25 ` [Qemu-devel] [PATCH 04/17] qmp-command.hx: add missing docs for migration capabilites Lei Li
2013-10-24 13:57 ` Paolo Bonzini
2013-10-25 4:11 ` Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 05/17] migration-local: add QEMUFileLocal with socket based QEMUFile Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 06/17] migration-local: introduce qemu_fopen_socket_local() Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 07/17] migration-local: add send_pipefd() Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 08/17] migration-local: add recv_pipefd() Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 09/17] migration-local: override before_ram_iterate to send pipefd Lei Li
2013-10-24 14:07 ` Paolo Bonzini
2013-10-25 4:16 ` Lei Li
2013-10-25 4:38 ` Lei Li
2013-10-25 7:23 ` Paolo Bonzini
2013-10-25 12:15 ` Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 10/17] migration-local: override save_page for page transmit Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 11/17] savevm: adjust ram_control_save_page for page flipping Lei Li
2013-10-24 14:09 ` Paolo Bonzini
2013-10-22 3:25 ` [Qemu-devel] [PATCH 12/17] migration-local: override hook_ram_load Lei Li
2013-10-24 14:06 ` Paolo Bonzini
2013-10-22 3:25 ` [Qemu-devel] [PATCH 13/17] migration-unix: replace qemu_fopen_socket with qemu_fopen_socket_local Lei Li
2013-10-24 14:10 ` Paolo Bonzini
2013-10-25 4:18 ` Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 14/17] add new RanState RAN_STATE_FLIPPING_MIGRATE Lei Li
2013-10-22 3:51 ` Eric Blake
2013-10-22 6:28 ` Lei Li
2013-10-22 8:10 ` Eric Blake
2013-10-24 14:11 ` Paolo Bonzini
2013-10-24 14:16 ` Paolo Bonzini
2013-10-24 14:13 ` Paolo Bonzini
2013-10-25 4:30 ` Lei Li
2013-10-25 7:31 ` Paolo Bonzini
2013-10-25 12:16 ` Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 15/17] migration-unix: page flipping support on unix outgoing Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 16/17] migration: adjust migration_thread() process for page flipping Lei Li
2013-10-24 14:15 ` Paolo Bonzini
2013-10-25 4:33 ` Lei Li
2013-10-22 3:25 ` [Qemu-devel] [PATCH 17/17] hmp: better format for info migrate_capabilities Lei Li
2013-10-24 14:17 ` Paolo Bonzini
2013-10-24 14:17 ` [Qemu-devel] [PATCH 0/17 v2] Localhost migration with side channel for ram Paolo Bonzini
2013-10-25 5:58 ` Lei Li
2013-10-25 7:30 ` Paolo Bonzini
2013-10-25 9:12 ` Anthony Liguori
2013-10-25 12:24 ` Lei Li [this message]
2013-11-21 8:45 ` Lei Li
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=526A62E7.9080201@linux.vnet.ibm.com \
--to=lilei@linux.vnet.ibm.com \
--cc=aarcange@redhat.com \
--cc=aliguori@amazon.com \
--cc=lagarcia@br.ibm.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mrhines@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=rcj@linux.vnet.ibm.com \
/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).