Hi all,
I have 2 clustered RabbitMQ nodes running RabbitMQ 3.6.0 on Erlang 18.2, CentOS 7.2, Linux kernel-3.10.0-327.4.4.el7.x86_64
I have setup a small test where I consume and produce the same messages to the same queue effectively creating a "feedback" loop.
I graph the throughput in order to get some insight into what the impact might be of a certain configuration.
The queue I have created is a durable, mirrored queue and is called "test_queue".
Consuming happens with a "prefetch" value of 1500 and "no_ack" true.
Scenario 1:
My stress test tool continuously produces 10 new messages of 233 bytes per second into the "test_queue"
The "test_queue" queue is then consumed by the same process and the consumed messages are produced again into the "test_queue" basically creating an endless loop.
Initially, the throughput is fine at 15k/s but gradually decreases to lower throughput but still fine. (presumably because of the growing number of messages see attached graph).
Scenario 2:
I first produce 1000000 messages of 233 bytes into the empty queue "test_queue".
Once done, I start my test tool to consume the messages and produce them back into the same queue.
Throughput now crawls to ~ 100 msg/s which is, at least to my feeling, too slow.
When the throughput is this slow, epmd is at 100% cpu constantly.
Tweaking ha-sync-batch-size does not seem to help at first glance.
If you have any tips/pointers about what is happening that would be great.
Cheers,
Jelle