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 -=|