[rabbitmq-discuss] Poor performance using a single RabbitMQ connection on high-latency networks
matthias at lshift.net
Wed Feb 3 02:56:40 GMT 2010
Holger Hoffstaette wrote:
> I'm not sure why the values have to be even smaller than e.g. Linux'
> vanilla defaults. Ideally - and given that Rabbit is mostly used on
> Linux/Unix - they should not be necessary at all, especially as they
> prevent any client-side settings from taking effect (I think - would
> have to check with wireshark).
Our sndbuf setting actually is the same as gets reported by Erlang by
default on the systems I've tried - 16k. OTOH, the recbuf setting of 4k
is significantly smaller than the 85k Erlang reports by default.
As I mentioned before, I tried to minimise per-connection memory usage.
So the figures are the lowest I could find that showed good performance
in my tests.
But yes, I'd rather stick to the defaults too. See below.
> The comment re. memory usage with a lot of connections is interesting
> though - is this really a problem even with epoll (aka kernel polling)?
> What would be a large number of connections - 100? 1000?
Depends what you are running on. A linksys slug - the smallest device
we've run rabbit on - can quite happily handle thousands of connections,
but not if they each take up >100k off memory.
OTOH, if you are running rabbit under extreme conditions then perhaps
it's not too much to ask for some manual parameter tweaking.
So I think we should investigate sticking to the defaults, and let users
tweak the settings when they need to. That's also what decided to do in
the client libraries.
More information about the rabbitmq-discuss