One thing we found out is that disk-IO is the bottleneck in our setup (most queues are ACK-ed, HA- queues). Our solutions:<br>1) batching of messages improved performance (message size bigger, but less messages)<br>2) Faster disks (10k spinners RAIDed) improved performance<br>
<br>So make sure you also look at that part of the system.<br><br>Cheers<br>Maze<br><br><br><div class="gmail_quote">On Thu, Dec 20, 2012 at 6:27 PM, Chris Schmidt <span dir="ltr">&lt;<a href="mailto:cischmidt77@gmail.com" target="_blank">cischmidt77@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<div class="im"><br>
On Dec 20, 2012, at 9:07 AM, Matthias Radestock &lt;<a href="mailto:matthias@rabbitmq.com">matthias@rabbitmq.com</a>&gt; wrote:<br>
<br>
&gt; Chris,<br>
&gt;<br>
&gt; On 20/12/12 16:18, Chris Schmidt wrote:<br>
&gt;&gt; There are 22 queues<br>
&gt; &gt; [...]<br>
&gt;&gt; A vendor let us borrow the 40-core machine to see if it would work<br>
&gt;&gt; better.  [...] Each core is only 11-15% utilized.<br>
&gt;<br>
&gt; You may not be able to saturate 40 cores with 22 queues. Depends on how many producers and consumers there are.<br>
&gt;<br>
&gt; The other constraint could be scheduling and general Erlang multi-core performance. This has improved *considerably* over the last few years. So please make sure you are running the latest Erlang/OTP release - R15B03.<br>

&gt;<br>
&gt; You may also want to tweak the various smp/scheduling related settings in Erlang. In particular I have seen massive performance differences when adjusting the +swt setting.<br>
&gt;<br>
<br>
</div>RHEL 6.2 doesn&#39;t seem to have the latest version of Erlang available in the repositories. Does anyone have experience with manually building Erlang on that platform with success? We&#39;re on R14B04 right now. There are a huge number of erlang related rpms that get installed I&#39;m not certain if a single Erlang version for CentOS would work properly or not.<br>

<br>
I had +K true -smp enable +native +sbtps plus the other RMQ defaults set on the 40 core machine while testing. I also removed everything to use plain vanilla RMQ settings to see how that impacted performance.<br>
<br>
I also had 15 consumers running against the initial queue that was having problems. I also tried sending the data into 2 - 40 exchanges (and updated the queue to read from those exchanges) in order to see if I could spread the load that way. Does a single process manage each queue? If so I can see that being a potential bottleneck due to the core&#39;s speed difference.<br>

<br>
Is there an erlang or rabbitmqctl command that I can run against the RMQ server to determine if the queues themselves are the bottleneck?<br>
<div class="im"><br>
&gt;&gt; I&#39;ve tried HiPE in the past, but the system % jumped considerably<br>
&gt;&gt; and we actually got poorer performance and instability.<br>
&gt;<br>
&gt; That&#39;s odd. Again, please make sure you are runninng the latest Erlang; HiPE is another area that has improved considerably recently.<br>
<br>
</div>I&#39;d definitely like to try HiPE again since we&#39;re CPU bound on the existing production server.<br>
<div class="im">&gt;<br>
&gt;&gt; I know the cores are slower in overall speed, but I would have bet<br>
&gt;&gt; money that in  aggregate this machine would outperform our other one.<br>
&gt;<br>
&gt; Depends on the workload. e.g. if queues are the bottleneck then having many more (slow) cores than queues won&#39;t help.<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
&gt; Matthias.<br>
<br>
</div>I appreciate the pointers, thanks Matthias!<br>
<div class="HOEnZb"><div class="h5"><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>