Optimize status.cgi
Ton Voon
ton.voon at opsera.com
Thu Dec 31 13:52:06 CET 2009
Hi Jonathan,
On 23 Dec 2009, at 02:26, Jonathan Kamens wrote:
> It adds the following optimizations to the code base:
> When iterating through the lines in the status.dat file, use a
> persistent buffer to read lines rather than freeing and reallocating
> a new buffer for every line. This reduces fragmentation of the
> malloc pool and reduces the amount of time spent in malloc() and
> free(). This is implemented by adding a new function,
> mmap_fgets_buf(), which is like mmap_fgets() except it takes an
> optional buffer to reuse if possible. I added this to both
> cgiutils.c and utils.c so that it can be used elsewhere in the code.
> When parsing the status.dat file, reduce the number of unnecessary
> calls to strcmp() by keeping track of when we know we're in a block
> and not checking for block-start sequences unnecessarily.
> Defer the sorting of the comment and scheduled downtime linked lists
> until they've all been read from status.dat. This makes a huge
> difference in performance -- it dwarfs by orders of magnitude the
> optimizations listed above. The way this is implemented is
> invisible to programs aside from status.cgi that call add_comment()
> or add_downtime(), but those programs can easily be modified to take
> advantage of the new functionality if they need to be sped up.
> I sincerely hope that the maintainers of Nagios will make an effort
> to include these changes in the next release. They represent a
> dramatic improvement in the performance and usability of the Web UI.
Just to let you know that (3) is now committed.
There's a test script which creates different numbers of comments/
downtimes and it shows that the code changes are indeed an order of
magnitude faster. Thanks again for the patch!
I've blogged about it here: http://opsview-blog.opsera.com/dotorg/2009/12/faster-nagios-cgis.html
Ton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.monitoring-lists.org/archive/developers/attachments/20091231/83755a21/attachment.html>
-------------- next part --------------
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
-------------- next part --------------
_______________________________________________
Nagios-devel mailing list
Nagios-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-devel
More information about the Developers
mailing list