Patchs proposal

Andreas Ericsson ae at op5.se
Sat May 16 11:50:53 CEST 2009


nap wrote:
> This is for the circular host check. I use bit 1->5 of
> host->is_being_freshened. I'm doing now the hostgroup's service patch.
> 

Thanks a lot! I've mangled the implementation a bit, using macros for
the most part and accessing host->circular_path_checked instead of
the higher order bits of is_being_freshened. Since it's now using
macros, we could re-use this for host- and service dependencies too,
as those also have the circular_path_checked variable.

Timing values from a config with 151109 hosts:
Patched
6.28user 0.19system 0:06.58elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+65723minor)pagefaults 0swaps

Unpatched
Ctrl-C before it was finished, providing these numbers:
3221.77user 0.31system 53:56.51elapsed 99%CPU (0text+0data 0max)k
0inputs+0outputs (0major+67480minor)pagefaults 0swaps

So far, your patch provides a speedup of *at least* 51302%. Very nice
indeed.

With a more modest configuration (15000 hosts), Nagios patched with your
DFS code completes in 0.72 seconds, while vanilla Nagios needs 3m 33s to
verify it. In short; Your patch cuts configuration verification down to
0.3% of what it originally required. I suspect we can get rid of the
pre-cache thing entirely now. The speedups it provides are really no
longer enough to warrant the complexities it entails.

I've also verified with some very strange configurations that it doesn't
ever miss a circular path chain, and it also prints all elements of a
circular path even if that chain in itself contains a circular chain.

Consider this:
host1 parents: host2
host2 parents: host1,host3
host3 parents: host1

With your patch, all three hosts are printed (as they should). With
vanilla Nagios, only host1 and host2 are printed. I simplified this
example a bit, since I just added random circular paths to a customer's
config when I was testing it out, but it seems your patch is more
correct while at the same time scaling linearly with the number of
hosts. Thanks indeed.

-- 
Andreas Ericsson                   andreas.ericsson at op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Register now for Nordic Meet on Nagios, June 3-4 in Stockholm
 http://nordicmeetonnagios.op5.org/

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects




More information about the Developers mailing list