Some messages in QQs are shows as pending consumer acknowledgements after consumer connection is closed #14053
Replies: 2 comments 16 replies
-
Most likely this is not a bug, but an overloaded RabbitMQ - even though the clients disconnect, it still has a backlog of things to do. Is this in any way a realistic workload for you? It's not necessarily the source of the problem, but:
I'm happy to take a look at potential performance issues/areas we could improve, but let's make sure we spend the time on things that matter, not benchmarks that are not representative of real workloads. |
Beta Was this translation helpful? Give feedback.
-
The node without unacked messages is spending most of its time starting queue replicas, connections and channels ( In other words, the only node not exhibiting this behavior is a node that does not serve client traffic (not yet or because PerfTest was pointed to its peers). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Describe the bug
Am load testing testing 4.1 RMQ Cluster with Quorum Queue before we migrate from our existing 3.12 version.
We employ Blue Green deployment and before we cut-over to the new 4.1 cluster we wanted to load test the cluster in our environment and measure the throughput of our cluster.
RMQ Cluster details
Version - 4.1.0
Erlang Version. - 27.3.4
The load tests are performed using perf-test tool for Quorum Queues with replication factor of 3
While load testing am encountering the issue, when the load test process completes it run before sending a ACK to consumed messages. The Non ACK'ed messages remain in Unacked state for a very long time more than 40-45 minutes, and as long as these messages are in UnAcked state am unable to publish any new messages to the Queue. Effectively rendering the Queue inaccessible for the duration.
Am consistently able to reproduce this behavior.
Reproduction steps
1.Run the perf test using the following flags, replace username/password and cluster details
java -jar perf-test.jar --uri amqp://username:password@clusterdomain:5672 --size 1000 --confirm 1 --quorum-queue --time 300 --shutdown-timeout 20 --queue-pattern 'perf-test-%d' --queue-pattern-from 1 --queue-pattern-to 20 --producers 20 --consumers 20 --nio-threads 10 --producer-channel-count 1024 --consumer-channel-count 1024 --output-file test_result11.out
When the load test run completes you can observe from the cluster that the messages are in Unacked state
Rerun the perf test jar again when the messages are in Unacked state. You can observe that publish and consumer rates are 0
Sample output from Perf Test
test-110635-144, time 252.001 s, sent: 0 msg/s, confirmed: 0 msg/s, nacked: 0 msg/s, received: 0.50 msg/s, min/median/75th/95th/99th consumer latency: 737265067/737265067/737265067/737265067/737265067 µs, confirm latency: 0/0/0/0/0 µs
Even though the there are no active connections Quorum Queues with UnAcked messages shows consumer count in Queue page
Cluster Connections
Queue with Unacked messages
Expected behavior
Messages should go back to ready state immediately when Consumer connections die and should not block publishers from publishing new messages
Additional context
No response
Beta Was this translation helpful? Give feedback.
All reactions