2015-08-06 5 views
14

Я реализовал rabbitmq в своем приложении, и он работает на сервере Windows Server 2008, проблема в том, что erl.exe использует высокие требования к процессору, например, когда-то он достигает 40-45% даже в идеальном случае (когда не обрабатывается какая-либо очередь) требуется не менее 4-15% использования ЦП.RabbitMQ: erl.exe с высокой загрузкой процессора

В чем причина высоких затрат на процессор? Есть ли какие-либо настройки или что-то еще, что мне нужно сделать.

+0

Что находится на сервере? –

+0

@old_sound Ничего о erl. – jkyadav

+0

Я имею в виду, что в журналах RabbitMQ –

ответ

1

Вы говорите, что даже если не обрабатывать очередь, он все еще находится на уровне 4-15%, но работает ли ваше приложение? Если вы не были раньше, попробуйте контролировать erl, пока приложение не использует Rabbit.

Одна вещь, которая приходит на ум, состоит в том, что вы можете использовать QueingBasicConsumer в цикле и это может способствовать использованию ЦП. Если вы используете QueingBasicConsumer, и это то, что вызывает удар, попробуйте заменить его EventingBasicConsumer (так что вы не выполняете ожидание) и посмотрите, есть ли у вас улучшения.

Также, как ваше приложение использует кролика? Согласно documentation каждый IConnection подкрепляется фоновым потоком, и если вы создаете связку соединений в своем приложении, это может быть еще одной причиной замедления.