Thanks for telling the story.<br><br>By the way, how much messages can now RabbitMQ handle easily?<br><br><div class="gmail_quote">2010/7/15 Ovidiu Deac <span dir="ltr">&lt;<a href="mailto:ovidiudeac@gmail.com">ovidiudeac@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">There is one thing though which is wrong: if a memory limit is given<br>
rabbitmq should manage its memory such that it can continue working<br>
properly but doesn&#39;t accept any more messages. If the memory limit is<br>
above a certain level the queues should be closed and all the messages<br>
published become unroutable.<br>
<br>
This way it would accept connections which extract messages and thus<br>
would free that memory.<br>
<div><div></div><div class="h5"><br>
On Thu, Jul 15, 2010 at 10:51 PM, Ovidiu Deac &lt;<a href="mailto:ovidiudeac@gmail.com">ovidiudeac@gmail.com</a>&gt; wrote:<br>
&gt; I found the problem: the memory limit was the default one which is 1.6<br>
&gt; i.e. 40% out of 4GB. It seems the OS installed is 32bits and this is<br>
&gt; why erlang doesn&#39;t see the full 6GB RAM.<br>
&gt;<br>
&gt; Of course the system didn&#39;t work if it ran out of memory.<br>
&gt;<br>
&gt; As soon as I changed vm_memory_high_watermark to 0.98 by putting<br>
&gt; [{rabbit, [{vm_memory_high_watermark, 0.98}]}].<br>
&gt; ... in /etc/rabbitmq/rabbitmq.config the problem was fixed<br>
&gt;<br>
&gt; Thanks for the help.<br>
&gt;<br>
&gt; ovidiu<br>
&gt;<br>
&gt; On Thu, Jul 15, 2010 at 8:50 PM, Scott Brooks &lt;<a href="mailto:scott@beamdog.com">scott@beamdog.com</a>&gt; wrote:<br>
&gt;&gt; 200k messages, @ 300 bytes a piece is nothing.<br>
&gt;&gt;<br>
&gt;&gt; I just ran a test and everything is fine for me.<br>
&gt;&gt;<br>
&gt;&gt; Can you re-do the test?  Also what are the specs on the server you are<br>
&gt;&gt; running the test on?<br>
&gt;&gt;<br>
&gt;&gt; Scott<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Jul 15, 2010 at 11:33 AM, Ovidiu Deac &lt;<a href="mailto:ovidiudeac@gmail.com">ovidiudeac@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; First of all thanks for the answers. Second I&#39;ll explain the situation<br>
&gt;&gt;&gt; a little better.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The big picture is like this: we receive orders from outside and they<br>
&gt;&gt;&gt; are put in rabbit by our &quot;gateway&quot; and then routed by rabbit to the<br>
&gt;&gt;&gt; processing modules. The whole business is about handling those<br>
&gt;&gt;&gt; messages and if we are unable to receive messages from outside is very<br>
&gt;&gt;&gt; bad so basically our gateway should be up all the time.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Normally all the orders coming in should be handled smoothly BUT if<br>
&gt;&gt;&gt; something happens to the consumers and they have a downtime the<br>
&gt;&gt;&gt; producer has no way to stop the incoming messages. Also we always want<br>
&gt;&gt;&gt; to be able to accept messages because we are payed for each incoming<br>
&gt;&gt;&gt; message.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Normally the system admin should handle the problem and restart the<br>
&gt;&gt;&gt; consumers. As I was saying before, we are testing for the worst case<br>
&gt;&gt;&gt; scenario, to see what the limits of RabbitMQ are. We want to see how<br>
&gt;&gt;&gt; can we extend these limits to increase the time we have until the<br>
&gt;&gt;&gt; queues get full.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; From our calculations if rabbitmq could hold 500k messages up to<br>
&gt;&gt;&gt; 300bytes each we would be pretty safe as that would give us enough<br>
&gt;&gt;&gt; time to react. The 200k limit is a little tight.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ovidiu<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; @Ovidiu:<br>
&gt;&gt;&gt;&gt; BUT, are you really sure you want what you are asking for? If I understand<br>
&gt;&gt;&gt;&gt; you correctly you want to allow outside producers (not under your control)<br>
&gt;&gt;&gt;&gt; to send persistant messages directly into your RabbitMQ and not have those<br>
&gt;&gt;&gt;&gt; producers back off?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Personally, I think that is not achievable. At some point your server ii&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; rabbitmq-discuss mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
&gt;&gt;&gt;&gt; <a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; s<br>
&gt;&gt;&gt;&gt; going to reject messages, and your producers must be able to deal with that,<br>
&gt;&gt;&gt;&gt; if, as you say, no messages are allowed to be lost.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Robby<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; rabbitmq-discuss mailing list<br>
&gt;&gt;&gt; <a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
&gt;&gt;&gt; <a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Linkėjimai, Best Regards<br><br>Darius Damalakas<br>