From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Daniel P. Berrange" Subject: Re: Working around xenstored performance? Date: Thu, 31 Jul 2008 10:15:40 +0100 Message-ID: <20080731091540.GI23888@redhat.com> References: <32D4D094-35A8-4972-AAAD-9D86BDB85C0A@panelsix.com> Reply-To: "Daniel P. Berrange" Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <32D4D094-35A8-4972-AAAD-9D86BDB85C0A@panelsix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Pim van Riezen Cc: Xen-devel List-Id: xen-devel@lists.xenproject.org On Thu, Jul 31, 2008 at 10:41:15AM +0200, Pim van Riezen wrote: > Good Day, > > For monitoring purposes, we have a process that sends a 'xend.domains' > methodCall to xend at timed intervals. Our problem here is that this > call, if the extra parameter is not '0', is pretty slow; xenstored > will run with 40% cpu grinding over its database before coming up with > a reply, hardly something you want to do like every 15 seconds. With > the parameter on 0, the response is instantaneous, but lacks any > information beyond the list of currently running guests. > > Is there a less intrusive way to just get the cpu-counter for a > specific guest through /proc/xen or some such? I'd also be perfectly > happy to fish the information out of xenstored's tdb-file, but all of > its records seem to be in an undocumented binary encoding so that's > not really helping either. The quickest workaround is to mount /var/lib/xenstore on tmpfs at boot time. This should reduce overhead by something like ~50%. > Our set-up is the Fedora branch of 3.0 (but from what I can read, 3.1 > still has this problem). If you use libvirt, then once you have fetched a 'virDomainPtr' object, you can query the CPU / memory utilization of the guest without it ever hitting xenstore/xend again. The virDomainGetInfo() method is optimized so it will either make a direct hypercall (very fast), or if non-root use a setuid proxy to make the hypercall (fairly fast). Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|