[rabbitmq-discuss] Problem transferring large message
Matthias Radestock
matthias at rabbitmq.com
Wed Aug 22 12:46:30 BST 2012
Zabrane,
On 22/08/12 12:22, Zabrane Mickael wrote:
>> On 22/08/12 10:34, Zabrane Mickael wrote:
>>> I asked this question long time ago and the idea was to break our
>>> big messages (~50Mb) in smaller ones (100Kb). Everything was fine
>>> after that with the default settings !!!
>>
>> Fragmenting the message is fine, but the broker does not force you
>> to do this.
>
> You sure about stability? Sending 50Mb at high rate makes RabbitMQ
> very unhappy (lot of crashes and messages lost).
I have just tested twenty producers sending 50Mb messages to Rabbit as
fast as they can. The combined rate was ~30Hz. And that's on a fairly
modest machine. There were some long pauses when messages were getting
paged to disk, and memory peaked at about 80% (so twice the configured
threshold), but that's expected. No crashes.
With smaller messages the performance profile will be smoother, i.e. the
pauses will be shorter and memory peaks will be lower. But there are
downsides to fragmenting messages aside from the extra code involved...
> That's what we can't afford to have. RAM is limited and we had to
> deal with millions of very big messages.
When you say 'deal with millions', what do you mean? That your rabbit
needs to hold (in its queues) millions of 50Mb messages? If you fragment
messages at 100k that would translate to 500 million messages. You'd
need a fair amount of RAM for that since each message has some fixed
memory footprint (in the small hundreds of bytes, iirc) even when paged
to disk.
Regards,
Matthias.
More information about the rabbitmq-discuss
mailing list