Skip to content

The memory usage is huge on MQTT with cleanSession=false and can not be limited by high water mark (3.12.13) #10627

Closed Answered by ansd
absolute8511 asked this question in General
Discussion options

You must be logged in to vote

So, we found the bottleneck:
queue_master_locator = min-masters (applicable to classic queues) reads all queue records from the database, which leads to unnecessary high resource usage.
In contrast, queue_leader_locator = balanced (applicable to quorum queues and streams) provides a better implementation since nodes will be selected randomly when there are more than 1000 queues.

queue_master_locator = min-masters is indeed the default in the cluster-operator.

I suggest you use queue_master_locator = client-local so that your MQTT clients can consume locally from the node they are connected to.

I test with queue_master_locator=random again, it seems much better. Under 2000/s connection cr…

Replies: 3 comments 20 replies

Comment options

You must be logged in to vote
1 reply
@absolute8511
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
19 replies
@ansd
Comment options

@absolute8511
Comment options

@absolute8511
Comment options

@ansd
Comment options

Answer selected by absolute8511
@ansd
Comment options

@absolute8511
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants
Converted from issue

This discussion was converted from issue #10627 on February 27, 2024 12:38.