<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 14, 2014 at 12:00 PM, Matthias Radestock <span dir="ltr"><<a href="mailto:matthias@rabbitmq.com" target="_blank">matthias@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/04/14 17:37, joseph rouphael wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Test 8: Dual node, Queues/Consumers on same node, 20 queue, ACK off<br>
------------------------------<u></u>------------------------------<u></u>-------<br>
Nodes: Double node<br>
Queues created on: Node1<br>
Producers on: node 2<br>
Consumers on: node 1<br>
Producer Processes: 20<br>
Producer regulate rate per process: 5KHZ<br>
Acknowledgment: OFF<br>
Expected rate: 100KHZ<br>
Achieved rate: Fluctuating between 10KHZ and 20KHZ<br>
CPU idle: 95%<br>
Note: Bottleneck on inter-node connection<br>
</blockquote>
<br></div>
What happens when you run the above test with both nodes on the same machine?<br></blockquote><div><br></div><div>The result is almost the same: Fluctuating between 10 and 23KHZ (Expected 100KHZ). Here is below the summary:</div>
<div> </div><div>Test 11: Dual nodes same machine, Queues/Consumers on same node, 20 queue, ACK on/off<br>------------------------------<u></u>------------------------------<u></u>-------------------------------------------------------------------------------<br>
Nodes: Double nodes same machine<br>Queues created on: Node1<br>Producers on: node 2<br>Consumers on: node 1<br>Producer Processes: 20<br>Producer regulate rate per process: 5KHZ<br>Acknowledgment: OFF or ON same result<br>
Expected rate: 100KHZ<br>Achieved rate: Fluctuating between 10KHZ and 23KHZ<br>CPU idle: 82%<br>Note: Bottleneck on inter-node connection<br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Also, you really shouldn't need 20 producers/consumers to saturate a broker, unless the machine has >20 cores. So I'd be interested to hear what the smallest producer/consumer count is at which you see a significant performance difference between the single node and dual node case.<br>
</blockquote><div> </div><div>The machine I am working on has 32 cores. So I am relaxed with the numbers of processes.</div><div>1 producer/consumer achieve a maximum of 11 KHZ (No inter-node impact. On single node it achieves the same)</div>
<div>2 producers/consumers achieve a maximum of ~ 20 KHZ (Minor inter-node impact - expected 22KHZ)</div><div>3 producers/consumers achieve a maximum of ~ 20 KHZ (Major inter-node impact - expected 33KHZ)</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Finally, it would be helpful if you ran your tests using RabbitMQ's standard performance testing tool, PerfTest - <a href="http://www.rabbitmq.com/java-tools.html#perftest" target="_blank">http://www.rabbitmq.com/java-<u></u>tools.html#perftest</a>. In order to replicate the above scenario you'd run 20 PerfTest instances with options<br>

  -u q<n> -x 0 -a<br>
and 20 instances with<br>
  -u q<n> -y 0<br>
with n in 1..20.<br>
<br></blockquote><div><br></div><div>perftest ran as advised and the test produced the same result. There is a real inter-node bottleneck.</div><div><br></div></div><div class="gmail_quote"><div>Results of perftest:</div>
<div><br></div><div>Test 1: Double nodes same machine</div><div>----------</div><div>Node1 and Node2 on same machine</div><div>Node1 listening on port 5672</div><div>Node2 listening on port 5673</div><div>20 consumers running full speed</div>
<div>20 producers running full speed</div><div>Message size 1KB</div><div><br></div><div>Max rate achieved: 16KHZ</div><div>CPU Idle 92%</div><div>Note: Inter-node bottleneck</div><div><br></div><div><div class="gmail_quote">
<div>The script used to run the test:</div><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"> </span></div><div class="gmail_quote"><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">#!/bin/sh<div class="gmail_quote">
<br></div><div class="gmail_quote">for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20</div><div class="gmail_quote">do</div><div class="gmail_quote">./runjava.sh com.rabbitmq.examples.PerfTest -k queue$i -x 0 -a -h amqp://<a href="http://193.100.200.130:5673">193.100.200.130:5673</a> -s 1000 &</div>
<div class="gmail_quote">./runjava.sh com.rabbitmq.examples.PerfTest -k queue$i -y 0 -h amqp://<a href="http://193.100.200.130:5672">193.100.200.130:5672</a> -s 1000 &</div><div class="gmail_quote">done</div><div><br>
</div></span></div></div><div>Test 2: Single node</div><div>---------</div><div>Single node: Node1</div><div>Node1 listening on port 5672</div><div>20 consumers running full speed<br></div><div>20 producers running full speed</div>
<div>Message size 1KB</div><div><br></div><div>Max rate achieved: 200KHZ</div><div>CPU Idle 12%</div><div><br></div><div><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"><div class="gmail_quote">
<div>The script used to run the test:</div><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"> </span></div><div class="gmail_quote"><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">#!/bin/sh<div class="gmail_quote">
<br></div><div class="gmail_quote">for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20</div><div class="gmail_quote">do</div><div class="gmail_quote">./runjava.sh com.rabbitmq.examples.PerfTest -k queue$i -x 0 -a -h amqp://<a href="http://193.100.200.130:5672">193.100.200.130:5672</a> -s 1000 &</div>
<div class="gmail_quote">./runjava.sh com.rabbitmq.examples.PerfTest -k queue$i -y 0 -h amqp://<a href="http://193.100.200.130:5672">193.100.200.130:5672</a> -s 1000 &</div><div class="gmail_quote">done</div><div><br>
</div></span></div></span></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Regards,<br>
<br>
Matthias.<br>
______________________________<u></u>_________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.<u></u>rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/<u></u>cgi-bin/mailman/listinfo/<u></u>rabbitmq-discuss</a><br>
</blockquote></div><br></div></div>