[rabbitmq-discuss] Getting SocketTimeoutException on java Producer client during load testing

Sean Stephens errant01 at gmail.com
Wed Sep 11 18:19:21 BST 2013


On my last test attempt, this is what I received in the rabbitmq log

=WARNING REPORT==== 11-Sep-2013::16:02:40 ===
file descriptor limit alarm set.

********************************************************************
*** New connections will not be accepted until this alarm clears ***
********************************************************************


After running 2 separate loads with only 1 thread driving the load, 500
msgs ran on the producer and 500 were consumed. on the second, only 230
ran... totalling 730 which gets close to the default connection limit.
Apparently I'm doing something wrong with my Producer connections.

I've set the FD limit on the linux server to something abnormally high
(1024000), so it shouldn't be the OS causing the problem.

And just to close the loop.... problem is solved now. I was creating a new
connection for each sent message and not closing it.  The proper way to do
it is to create one shared connection and open new channels on that
connection for each send. The thing to remember is to close the connections
on client reset.

Thanks for your help!


On Wed, Sep 11, 2013 at 10:44 AM, Michael Klishin <mklishin at gopivotal.com>wrote:

> Sean Stephens:
>
> > My belief at this point is that my producer load has overrun the
> connection factory pool in writing to the queues.
> >
> > I have been unable to locate information on settings related to the
> connection factory pool to make it larger or change the timeout.  When the
> connections do timeout, it doesn't look like the pool catches up unless I
> kill the Producer application.  Anyone have advice on how to get past this
> issue?
>
> ConnectionFactory does not pool connections. Can you take a look at
> rabbitmq log to see if
> there are any warnings about alarms and blocked publishers?
>
> > Is there a way to throttle the load at the Producer connection, or will
> it be necessary to just add more nodes to handle the incoming load?
>
> You can implement throttling logic in your own code but in general, you
> need to have enough
> consumer capacity to keep up with producers, or RabbitMQ will block
> connections that publish
> (there will be a very visible warning in the log).
>
> MK
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130911/81315d89/attachment.htm>


More information about the rabbitmq-discuss mailing list