Lidando com aumento de memória RAM no RabbitMQ

O RabbitMQ gosta muito de usar memória RAM. Esse é um dos motivos do da entrada de dados no broker ser extremamente rápida, muito mais rápida que a entrada de dados em um banco de dados SQL, por exemplo.

Uma das desvantagens é: a memória RAM pode acabar.

Como aumentar a memória RAM disponível no RabbitMQ?

Por padrão o RabbitMQ aloca 40% da memória RAM disponível no computador.

É possível aumentar esse limite inserindo o seguinte no arquivo de configuração rabbitmq.conf:

# Aumentando para 70%vm_memory_high_watermark.relative = 0.7

Essa mudança só acontecerá quando o RabbitMQ for reiniciado. Para mudar instantaneamente, digite:

rabbitmqctl set_vm_memory_high_watermark 0.7

Nota: se você não alterar o limite também no rabbitmq.conf o limite de memória voltará a ser 40% após o RabbitMQ ser reiniciado.

O que no RabbitMQ está consumindo a memória RAM?

Se a gráfica de gerenciamento do RabbitMQ (rabbitmq management) estiver instalada, dê uma olhada aqui:

Referências

Documentação oficial RabbitMQ - Alarmes de Memória
https://www.rabbitmq.com/memory.html

Documentação oficial RabbitMQ - Uso de Memória
https://www.rabbitmq.com/memory-use.html

Understanding Memory Use
https://www.rabbitmq.com/blog/2014/10/30/understanding-memory-use-with-rabbitmq-3-4/

Connections, Channels e Queues entrando em modo Flow
https://www.rabbitmq.com/flow-control.html

Descobrindo gargalos no RabbitMQ
https://www.rabbitmq.com/blog/2014/04/14/finding-bottlenecks-with-rabbitmq-3-3/

Memória crescendo no RabbitMQ
https://stackoverflow.com/questions/44435097/rabbitmq-binary-memory-consumption

Memória crescendo no RabbitMQ 2
https://stackoverflow.com/questions/44614033/why-binary-memory-usage-grows-up-on-rabbitmq

You should also read:

NGINX + RabbitMQ + Websocket

Fazendo proxy reverso websocket com nginx, sem TLS server { listen 3000; server_name ws.ubivis.io; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host;…