RabbitMQ на EC2, потребляющем тонны ЦП

Я пытаюсь получить RabbitMQ с Celery и Django, использующим экземпляр EC2, чтобы выполнить довольно простую фоновую обработку. Я запускаю rabbitmq-server 2.5.0 на большом экземпляре EC2.

Я загрузил и установил тестовый клиент в соответствии с инструкциями здесь (в самом низу страницы). Я просто позволяю тесту выполнить сценарий и получаю ожидаемый результат:

recving rate: 2350 msg/s, min/avg/max latency: 588078478/588352905/588588968 microseconds
recving rate: 1844 msg/s, min/avg/max latency: 588589350/588845737/589195341 microseconds
recving rate: 1562 msg/s, min/avg/max latency: 589182735/589571192/589959071 microseconds
recving rate: 2080 msg/s, min/avg/max latency: 589959557/590284302/590679611 microseconds

Проблема в том, что он потребляет невероятное количество ЦП:

PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
668 rabbitmq 20 0 618m 506m 2340 S 166 6,8 2: 31,53 beam.smp
1301 ubuntu 20 0 2142m 90m 9128 S 17 1.2 0: 24.75 java

Ранее я тестировал микроэкземпляр, и он полностью потреблял все ресурсы экземпляра.

Этого следовало ожидать? Я что-то делаю не так?

Спасибо.

Edit:

Настоящей причиной этого сообщения было то, что celerybeat какое-то время работал нормально, а затем внезапно потреблял все ресурсы в системе. Я установил инструменты управления rabbitmq и исследовал, как создаются очереди из сельдерея и из набора тестов rabbitmq. Мне кажется, что сельдерей осиротел эти очереди, и они никуда не денутся.

Вот очередь, сгенерированная набором тестов. Создается одна очередь, и все сообщения попадают в нее и выходят: enter image description here

Celerybeat создает новую очередь при каждом запуске задачи: enter image description here

Он устанавливает для параметра автоудаления значение true, но я не совсем уверен, когда эти очереди будут удалены. Кажется, они просто медленно накапливаются и съедают ресурсы.

У кого-нибудь есть идея?

Спасибо.

10
задан Eric Conner 15 June 2011 в 21:21
поделиться