Hi!<br><br>Since the RabbitMQ server is an Erlang application, I wanted to see whether it runs faster as I increase the number of scheduler threads in the Erlang VM that runs it (+S option of the erl program).<br><br>For this purpose, I wrote a simple benchmark (in Erlang) that spawns P producer and P consumer processes and creates P queues. The i-th producer sends M messages to the i-th queue and the i-th consumer waits to receive them. My benchmark uses native Erlang messaging for sending and receiving messages.<br>
<br>I attach the results I get when I run the benchmark with P=M=1000 on a machine with 16 cores and assign 1, 2, …, 16 scheduler threads to the VM that runs the RabbitMQ server.<br><br>As you can see, things get better up to 6 schedulers, but with 7 or more schedulers it seems that there is no further speedup.<br>
Do you have any idea why this is happening?<br>Is there some kind of synchronization among the processes that the RabbitMQ server spawns that explains it or should I look for bugs in my benchmark?<br><br><br>Thanks!<br>Katerina<br>
<br>