The service works like this: when a client connects, a dedicated queue is created, and when it disconnects the queue is removed after 30 seconds with a policy (unless the same client reconnects in the meantime). At certain times many clients disconnect (a few thousand in a few minutes), then the corresponding queues (after 30 seconds) are deleted ( rate 2 - 10 per second).
For 15 - 25 minutes after these deletions, rabbitmq is no longer able to send messages and even the management GUI responds slowly.
The CPU utilization of each node (8 cores, 32GB RAM) never exceeds 30% and the RAM used is around 3 GB.
The linux limits of the process are as follows:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes unlimited unlimited processes
Max open files 1048576 1048576 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 127020 127020 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
The Erlang runtime launch command looks like this:
/usr/local/lib/erlang/erts-12.3.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 256000 -sbwt none -sbwtdcpu none -sbwtdio none -sbwt none -sbwtdcpu none -sbwtdio none -B i -- ...