High process memory in quorum queue #3063
Unanswered
annieblomgren
asked this question in
Questions
Replies: 3 comments 9 replies
-
Quorum queues keep all messages in memory as well as on disk by default.
Try configuring a max-in-memory length limit to make quorum queues re-read
messages from it's raft log when they are consumed instead. Not this has a
consumption performance penalty.
https://www.rabbitmq.com/quorum-queues.html#memory-limit
Cheers
Karl
…On Mon, 24 May 2021 at 16:26, annieblomgren ***@***.***> wrote:
Hi,
RabbitMQ version 3.8.16
Erlang 23.2.3
Environment="RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=+sbwt none +sbwtdcpu none
+sbwtdio none"
Perftest version 2.11.0 with command bin/runjava
com.rabbitmq.perf.PerfTest -u "testqq2" --size 10 --producers 5 --consumers
0 -f persistent -H $URL --auto-delete=false --queue-args
x-queue-type=quorum -pmessages 400000
A quorum queue with 2M messages, no publishers nor consumers is having
around 1.6GB in process memory.
After a full GC process memory goes down to around 1.4GB
[image: Screen Shot 2021-05-24 at 17 22 02]
<https://user-images.githubusercontent.com/48422873/119369633-83968580-bd08-11eb-96dc-5135ef81551a.png>
[image: Screen Shot 2021-05-24 at 16 35 33]
<https://user-images.githubusercontent.com/48422873/119368703-74fb9e80-bd07-11eb-8738-de15a3147452.png>
[image: Screen Shot 2021-05-24 at 16 54 12]
<https://user-images.githubusercontent.com/48422873/119368707-75943500-bd07-11eb-95f0-2e9a415e609f.png>
The same number of messages for a classic queue sits around 300 MiB in
process memory before a full GC, and ~60MiB after.
Have changed raft.wal_max_size_bytes and x-max-in-memory-bytes to low
values but no difference.
Grafana dashboards before and after GC on QQ:
https://snapshot.raintank.io/dashboard/snapshot/IphlxnoFeXsjqw6wVH0G0vYS2svJ2GFJ
https://snapshot.raintank.io/dashboard/snapshot/PhdZV2Y2Z3oMyxbuft8f8nLs72vvcWL1
*Question: what is taking up so much process memory for QQs, or is this to
be expected?*
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#3063>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJAHFDECNBE2I5P72R2EQLTPJVYRANCNFSM45NN54EQ>
.
--
*Karl Nilsson*
|
Beta Was this translation helpful? Give feedback.
1 reply
-
If you applied the policy to a queue with messages already in memory as you
can see it will still keep them in memory until they are consumed. Try the
test starting with an empty queue and the policy in place.
…On Mon, 24 May 2021 at 17:21, Johan Rhodin ***@***.***> wrote:
OK I tried with max-in-memory-length and it did free up some process
memory but not much (from ~1.6GB to ~1.4GB).
[image: rmq_process_memory_max-in-memory-length]
<https://user-images.githubusercontent.com/460369/119376721-e729a000-bc81-11eb-9510-1272f10d97c0.png>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#3063 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJAHFDTEEYKK4MK434L2VTTPJ4HLANCNFSM45NN54EQ>
.
--
*Karl Nilsson*
|
Beta Was this translation helpful? Give feedback.
0 replies
-
Beta Was this translation helpful? Give feedback.
8 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
RabbitMQ version 3.8.16
Erlang 23.2.3
Environment="RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=+sbwt none +sbwtdcpu none +sbwtdio none"
Perftest version 2.11.0 with command
bin/runjava com.rabbitmq.perf.PerfTest -u "testqq2" --size 10 --producers 5 --consumers 0 -f persistent -H $URL --auto-delete=false --queue-args x-queue-type=quorum -pmessages 400000
A quorum queue with 2M messages, no publishers nor consumers is having around 1.6GB in process memory.
After a full GC process memory goes down to around 1.4GB
The same number of messages for a classic queue sits around 300 MiB in process memory before a full GC, and ~60MiB after.
Have changed
raft.wal_max_size_bytes
andx-max-in-memory-bytes
to low values but no difference.Grafana dashboards before and after GC on QQ:
https://snapshot.raintank.io/dashboard/snapshot/IphlxnoFeXsjqw6wVH0G0vYS2svJ2GFJ
https://snapshot.raintank.io/dashboard/snapshot/PhdZV2Y2Z3oMyxbuft8f8nLs72vvcWL1
Question: what is taking up so much process memory for QQs, or is this to be expected?
Beta Was this translation helpful? Give feedback.
All reactions