On 23/04/12 15:14, Ramon Bastiaans wrote:
> Hi Daniel,
> 
> Ah ok. Before you sent your email I had already created a small patch
> for myself. It almost seems that APR ignores the OS settings (i.e.:
> net.core.rmem_default) and creates a socket with it's own default
> (receive) buffer size.

Actually, apr can be a little bit more naughty than that: for Vladimir
and myself, attempting to query the buffer size from APR reports the
value 0.  Querying the underlying socket directly reports another value.
 I'm using apr-1.4.2 on Debian squeeze, which version do you have?

> Attached is a patch against 3.3.6 for lib/apr_net.c that stops the
> receive buffers errors for me.
> 
> The patch sets the buffer size a bit bigger, although I'm not sure what
> would be a sensible size for gmond. I would think if you have a large
> cluster with lots of UDP traffic you would need a bigger receive buffer
> than for smaller systems.
> 
> I will try out 3.3.7 and see what it's debug output says on buffer size's.

You will notice the logging code reports two results, because of the apr
issue described above

For your patch, could you generalise it to allow a value in the config
file?  This commit will suggest how to go about adding a new config value:

https://github.com/ganglia/monitor-core/commit/bfeb4ce3ad65466a3bef220bb6950403b4f968cd#gmond/conf.pod

The patch should respect the previous behavior - if the config value is
unspecified or 0, it should not change anything.

However, because we know there are issues with getting/setting the value
through APR, your patch would also need to consider:

- is there a minimum APR version required for the patch to work?
- could you set the value, query the value, and if it hasn't accepted
the value, try setting the value on the native socket?
- or maybe just ignore the APR code completely and go directly to set
the value on the native socket?

This commit will show you how to access the native socket:

https://github.com/ganglia/monitor-core/commit/18d0655ca820b3184aee919587824132c9ee99f0#lib/apr_net.c

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Ganglia-developers mailing list
Ganglia-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ganglia-developers

Reply via email to