RabbitMQ: erl.exe с высокой загрузкой процессора

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

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

Ответы

Ответ 1

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

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

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