Использование памяти RabbitMQ - PullRequest
0 голосов
/ 26 октября 2018

В настоящее время я использую RabbitMQ (3.6.2-1) в Ubuntu (16.04) в производстве. Производители публикуют сообщения, а потребители потребляют сообщения, и все работает правильно, но иногда RabbitMQ не освобождает память и касается максимального объема памяти, и производители не могут публиковать сообщения в пустых очередях, поэтому я должен перезапустить службу.

Это ошибка или что-то еще?

enter image description here

Обновление:

Это из плагина управления, так что вы можете решить эту проблему одним из следующих решений:

1. Обновите версию RabbitMQ (стабильная версия 3.6.15)

2. Периодический перезапуск базы данных статистики (ежечасно) https://www.rabbitmq.com/management.html#stats-db

3. установите значение none_mode в вашем файле rabbitmq.config (это не очень хорошая идея, потому что в этом случае вы не можете видеть скорость сообщений)

1 Ответ

0 голосов
/ 26 октября 2018

Вы должны проверить количество сообщений, которые у вас есть в ваших очередях.

RabbitMQ по умолчанию сохраняет сообщения в памяти для быстрой работы.

если вам нужно обрабатывать много сообщений, вы можете использовать отложенную очередь: https://www.rabbitmq.com/lazy-queues.html С отложенной очередью вы можете обрабатывать миллионы сообщений, не оказывая слишком большого влияния на память узла.

Или это может быть проблема с отображением памяти, см .: http://rabbitmq.com/management.html#stats-db в вашей корзине вы можете запустить:

rabbitmqctl eval 'supervisor2:terminate_child(rabbit_mgmt_sup_sup, rabbit_mgmt_sup), rabbit_mgmt_sup_sup:start_child().' , чтобы сбросить статистику и освободить память.Вы можете периодически вызывать его

Примечание:

Существуют различные способы сброса статистики, это зависит от версии rabbitmq, здесь вседеталь

...