[one-users] 'monitoring' command in 3.6 - sunstone 100% CPU
Daniel Molina
dmolina at opennebula.org
Wed Aug 8 04:18:40 PDT 2012
Hi Thomas,
On 7 August 2012 21:42, Thomas Higdon <thigdon at akamai.com> wrote:
> I noticed that sunstone was starting to use 100% CPU after awhile on my
> new 3.6.0 install. It turns out the culprit was the 'monitoring' command
> that I think sunstone uses to render its graphs is handing back a *lot*
> of XML, over 3 MB in my case. This is probably a good deal more than
> it would be a default install because I've got the polling interval
> cranked to 10s.
>
> That amount of XML is too much for the default XML parser to handle, and
> it apparently pegs the CPU and freezes the application indefinitely.
> Running
>
> gem install xmlrpc-streaming nokogiri
Actually, this is a common problem experienced by many users, using
Nokogiri instead of the default REXML parser provides a huge
performance improvement. In order to avoid this problem, the nokogiri
gem is installed by default when using the install_gem tool as
described in the installation guide.
Also we included in OpenNebula.rb a Nokogiri Stream class
(https://github.com/OpenNebula/one/blob/master/src/oca/ruby/OpenNebula.rb#L92),
hence the xmlrpc-streaming gem is not required.
>
> causes sunstone to use a faster XML parser, which brings down the
> execution time to 2-3 secs, which is acceptable(-ish) performance.
> However, it seems like there should be some means of limitation on the
> number of records that the 'monitoring' command returns, at least for
> that instance. It's pegging some python XML parsing code I have, too.
Currently you can define the following parameters in oned.conf
# HOST_MONITORING_EXPIRATION_TIME: Time, in seconds, to expire monitoring
# information. Use 0 to disable HOST monitoring recording.
#
# VM_MONITORING_EXPIRATION_TIME: Time, in seconds, to expire monitoring
# information. Use 0 to disable VM monitoring recording.
and
# HOST_MONITORING_INTERVAL: Time in seconds between host monitorization.
# HOST_PER_INTERVAL: Number of hosts monitored in each interval.
#
# VM_POLLING_INTERVAL: Time in seconds between virtual machine monitorization.
# Use 0 to disable VM monitoring.
# VM_PER_INTERVAL: Number of VMs monitored in each interval.
with these parameters you can adjust the number of records that will
be sent in each request
>
> 3.6 looks great otherwise -- thanks for bringing in the qcow2 features!
I'm glad you like it. Thanks for your feedback
Cheers
--
Daniel Molina
Project Engineer
OpenNebula - The Open Source Solution for Data Center Virtualization
www.OpenNebula.org | dmolina at opennebula.org | @OpenNebula
More information about the Users
mailing list