<div dir="ltr">We are testing the application against the RabbitMQ cluster, so there are many queues involved, all of which are HA. Most of the queues present the work or results of an activity, where each activity is part of a larger finite state machine. The application processes incoming messages via these state machines, and we drive the application and RabbitMQ testing by pushing through levels of messages. In this case there are about 100 queues, but only 15 of those are actively used; the remainder represent error states or other "non-happy path" activities. All of this is accomplished using the MassTransit libraries, which manages sagas and message retry/reprocessing as well as other things on top of an AMQP messaging system.<div>
<br></div><div>So... all that being said - we pump through about 100K messages/hour, each message is ~5K in size, and messages are real in the sense that the application under test will process them successfully into the system using RabbitMQ. We're not just testing raw performance of RabbitMQ but the performance of RabbitMQ in the context of the application. This increases the number of variables when testing but we can observe the Rabbit cluster under test and still draw conclusions.</div>
<div><br></div><div>Hope this helps and if you have any other feedback it would be welcome!</div><div><br></div><div>Cheers,</div><div><br></div><div>-ronc</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, Feb 12, 2014 at 3:10 AM, Simon MacMullen <span dir="ltr"><<a href="mailto:simon@rabbitmq.com" target="_blank">simon@rabbitmq.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">On 11/02/14 23:42, Ron Cordell wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
4. (here is the interesting one) When the F5 is configured to load<br>
balance across the 3 nodes as a round-robin load balancer, maximum<br>
throughput is significantly less than if the F5 sends all traffic to a<br>
single node.<br>
<br>
I'd love any feedback, especially on #4.<br>
</blockquote>
<br></div>
Depends exactly what your tests are doing.<br>
<br>
If your tests are running through a single queue then it will be faster to publish and consume on the node which hosts that queue since you can avoid sending messages across the cluster.<br>
<br>
[This effect is particularly pronounced if using basic.qos or mandatory=true, since those currently involve synchronous request-response across the cluster. This will get fixed in 3.3.0.]<br>
<br>
Cheers, Simon<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Simon MacMullen<br>
RabbitMQ, Pivotal<br>
</font></span></blockquote></div><br></div>