Discarding content bearing method ({'basic.publish',1,<<"records">>,
<<"event">>,false,false})
Any ideas?Sincerely,
Suhail DoshiThis indicates that rabbit got close to running out of memory and told
all connected clients to stop sending any more messages. Hence the
"Discarding ..." message you were seeing in the erlang client. Your
consumers should continue to receive messages, albeit slowly if rabbit
is swapping.
Perhaps your consumers are not acknowledging received messages, causing
them to keep piling up at the server?
I recommend checking the queue lengths/sizes with 'rabbitmqctl list_queues'.
Regards,
Matthias.
_______________________________________________
rabbitmq-discuss mailing list
rabbitmq...@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Suhail Doshi wrote:This indicates that rabbit got close to running out of memory and told all connected clients to stop sending any more messages. Hence the "Discarding ..." message you were seeing in the erlang client. Your consumers should continue to receive messages, albeit slowly if rabbit is swapping.
Looking in my logs shows a large gap in time, in bold is where it is:
=INFO REPORT==== 30-Jul-2009::17:26:56 ===
alarm_handler: {set,{system_memory_high_watermark,[]}}
Perhaps your consumers are not acknowledging received messages, causing them to keep piling up at the server?
I recommend checking the queue lengths/sizes with 'rabbitmqctl list_queues'.
Regards,
Matthias.
Suhail Doshi wrote:
> I attached some images that might provide better insight into the
> problem. You can basically see when everything went down and horribly
> wrong: memory usage, swap in/out, and load average.
Is it definitely the rabbitmq server that is busy and eating all the
memory, rather than some other process on your system (e.g. the erlang
client, python consumers, desktop apps, etc)?
If it *is* the server, can you observe the memory growing gradually from
the start, or does it suddenly spike?
Matthias
Suhail,Is it definitely the rabbitmq server that is busy and eating all the memory, rather than some other process on your system (e.g. the erlang client, python consumers, desktop apps, etc)?
Suhail Doshi wrote:
I attached some images that might provide better insight into the problem. You can basically see when everything went down and horribly wrong: memory usage, swap in/out, and load average.
If it *is* the server, can you observe the memory growing gradually from the start, or does it suddenly spike?
Matthias
Suhail Doshi wrote:
> Yeah definitely has to be, the moment I kill it the memory drops back
> down and it is gradually growing, you can even see it gradually growing
> in the images.
Do you definitely see the rabbit process consuming the memory? How big
does it get? And what about CPU usage?
The reason I am asking is that killing the server also affects the
clients, i.e. it is possible that a *client* is consuming all the
memory, and releases it as soon as the server connection is severed.
So please check the *per-process* memory and CPU stats.
Now, if it really is the server that is eating the memory, please run
all the various list_* commands in rabbitmqctl to see whether any of
them are showing growth.
Finally, try publishing messages without marking them as persistent, and
see whether that changes the behaviour.
Regards,
Matthias.
Suhail,Do you definitely see the rabbit process consuming the memory? How big does it get? And what about CPU usage?
Suhail Doshi wrote:
Yeah definitely has to be, the moment I kill it the memory drops back down and it is gradually growing, you can even see it gradually growing in the images.
The reason I am asking is that killing the server also affects the clients, i.e. it is possible that a *client* is consuming all the memory, and releases it as soon as the server connection is severed.
So please check the *per-process* memory and CPU stats.
Now, if it really is the server that is eating the memory, please run all the various list_* commands in rabbitmqctl to see whether any of them are showing growth.
Finally, try publishing messages without marking them as persistent, and see whether that changes the behaviour.
Regards,
Matthias.
Suhail Doshi wrote:
> I basically keep the channel object and connection open the entire time
> so I do not do the statup stuff over and over, is this a bad idea?
On the contrary, that's a *good* idea...
> I don't see any global objects of mine increasing in size so I can
> only think I am doing something wrong from a rabbitmq perspective.
Hmm. Are you using more than one channel per connection? If so, the
other channels may be being starved, which may lead to a backlog of work
accumulating in them. You may need to restructure the main loop of your
application, if you're using more than one channel.
Regards,
Tony
--
[][][] Tony Garnock-Jones | Mob: +44 (0)7905 974 211
[][] LShift Ltd | Tel: +44 (0)20 7729 7060
[] [] http://www.lshift.net/ | Email: to...@lshift.net