On Thu, Jan 25, 2007 at 11:03:32AM +0000, Mark McLoughlin wrote:
On Thu, 2007-01-25 at 10:50 +0000, Mark McLoughlin wrote:
> If a DomainGetInfo() call is in the sub-millisecond range then it's
> never going to be a bottleneck IMHO.
Hmm, that might sound like I'm talking out my ass ...
Consider an app that displays the UUID of all guests in a list. It
calls GetUUID() for each guest. With 100 guests you get figures like:
+ Direct HV calls - 500us
+ Proxy - 3ms
+ XML-RPC proxy - 100ms
+ Proxy over network - 10s
+ XML-RPC proxy over network - 10.1s
So, the app seems snappy even with this number of guests until you run
it over the network. At this point we optimise by adding a
ListDomainUUIDs() call and this speeds up the local case too. At no
point should we worry about the XML-RPC.
When we consider libvirt over a network, we're not really talking across
the whole world - really a LAN/WAN in a data center management role. I
would not expect network roundtrip ping time to be more than 20ms, perhaps
even as low as 5ms or less. So the 10s figure is a bit of an over estimate
I think. In addition, ignoring the roundtrip time for the client, that is
not inconsiderable CPU overhead on the server - monitoring 100 guests, once
per second uses 10% CPU time with XML-RPC compared to 0.3% with proxy.
That's not something to be discounted because there may well be several apps
talking to libvirt on a machine - eg the systems management tool, a monitoring
daemon, and a VM policy daemon.
Regards,
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|