Worse RabbitMQ performance when doing less

47 views
Skip to first unread message

Arthur

unread,
Nov 22, 2023, 8:32:00 AM11/22/23
to rabbitmq-users
I have RabbitMQ running in a Windows Docker container with Erlang (version 25.3) and RabbitMQ (version 3.11.18). This container operates in process isolation with four enabled schedulers. In my application, composed of services running in Docker containers, there are two modes: recording and non-recording. During recording, the system load is higher, and more data is transmitted through RabbitMQ. However, in non-recording mode, where the application performs fewer tasks and less data is send through RabbitMQ, RabbitMQ performance degrades. I confirmed this by running a monitoring process that sends a message with a timestamp, receives the message, and calculates the time difference between sending and receiving.

In recording mode, the time difference is approximately 10 ms, but in non-recording mode, the time differences are around 2000 ms at times (see graph 3 in the added image). I experimented with various settings for the Erlang runtime system, and although increasing the number of schedulers from 2 to 4 improved performance to some extent, the issue persists. What could be causing this behavior, and how can I enhance the performance?
RMQ.png

Terry Rinck

unread,
Nov 22, 2023, 10:51:58 AM11/22/23
to rabbitm...@googlegroups.com
You'll need to provide a reproducible case, preferably ready to run with a git clone and minimal setup steps, to get any sort of reasonable help here. There are too many factors to speculate without specifics. 

On Wed, Nov 22, 2023 at 8:32 AM Arthur <arthu...@gmail.com> wrote:
I have RabbitMQ running in a Windows Docker container with Erlang (version 25.3) and RabbitMQ (version 3.11.18). This container operates in process isolation with four enabled schedulers. In my application, composed of services running in Docker containers, there are two modes: recording and non-recording. During recording, the system load is higher, and more data is transmitted through RabbitMQ. However, in non-recording mode, where the application performs fewer tasks and less data is send through RabbitMQ, RabbitMQ performance degrades. I confirmed this by running a monitoring process that sends a message with a timestamp, receives the message, and calculates the time difference between sending and receiving.

In recording mode, the time difference is approximately 10 ms, but in non-recording mode, the time differences are around 2000 ms at times (see graph 3 in the added image). I experimented with various settings for the Erlang runtime system, and although increasing the number of schedulers from 2 to 4 improved performance to some extent, the issue persists. What could be causing this behavior, and how can I enhance the performance?

--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rabbitmq-users/6fb985f2-9c07-4b78-b94d-ea0cff2d76b3n%40googlegroups.com.

Luke Bakken

unread,
Nov 22, 2023, 10:55:07 AM11/22/23
to rabbitmq-users
I agree with the statement that we are missing a lot of details here.

I have some ideas and will follow up in the duplicate discussion here - https://github.com/rabbitmq/rabbitmq-server/discussions/9974
Reply all
Reply to author
Forward
0 new messages