external_command_buffer_slots??

Marc Powell marc at ena.com
Thu Aug 20 14:35:17 CEST 2009


On Aug 19, 2009, at 6:57 PM, Ryan Bowlby wrote:

> Hello everyone,
>
> I joined the list just for this!
>
> A google search of "external_command_buffer_slots" doesn't provide  
> much beyond the official documentation. Can someone please clarify  
> for me what this directive is actually doing.

It's pretty clear here --

http://nagios.sourceforge.net/docs/3_0/tuning.html

• External command optimizations. If you're processing a lot of  
external commands (i.e. passive checks in a distributed setup, you'll  
probably want to set the command_check_interval variable to -1. This  
will cause Nagios to check for external commands as often as possible.  
You should also consider increasing the number of available external  
command buffer slots. Buffers slots are used to hold external commands  
that have been read from the external command file (by a separate  
thread) before they are processed by the Nagios daemon. If your Nagios  
daemon is receiving a lot of passive checks or external commands, you  
could end up in a situation where the buffers are always full. This  
results in child processes (external scripts, NSCA daemon, etc.)  
blocking when they attempt to write to the external command file. I  
would highly recommend that you graph external command buffer slot  
usage using MRTG and the nagiostats utility as described here, so you  
understand the typical external command buffer usage of your Nagios  
installation.

> Is this buffer internal to Nagios?

Yes

> The name seems unfortunate because it reminds me of the external  
> command file which obviously can't be increased beyond 4096 without  
> hacking fifo sizes in kernel source.

It's related to the external command file but doesn't increase the  
size of the pipe, as you indicate.

> What downside is there to setting this buffer to say.. 8192 or <?

You may end up with the pipe being full and external commands being  
blocked until it's emptied. In busy installations this could mean a  
lot of additional processes hanging around taking up memory.

> Can someone describe where in the chain of events check results  
> reside in this buffer?


A nagios thread reads the external command pipe and stores any  
commands found in a temporary buffer. The buffer can hold  
external_command_buffer_slots entries. This buffer is then polled by  
the main nagios thread periodically to process any pending requests.

--
Marc


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. 
::: Messages without supporting info will risk being sent to /dev/null





More information about the Users mailing list