web-dev-qa-db-ja.com

RabbitMQ:高いCPU使用率を占めるerl.exe

アプリケーションにrabbitmqを実装し、Windows Server 2008サーバーで実行しています。問題は、理想的な場合(キューを処理していない場合)でも、erl.exeがCPU使用率が40〜45%に達するなどの高いCPU使用率を使用することです。少なくとも4〜15%のCPU使用率が必要です。

CPU使用率が高い理由は何でしょうか?私がしなければならない設定や他のことはありますか?.

16
jkyadav

キューを処理していないときでも4〜15%であると言いますが、アプリケーションは実行されていますか?以前に行ったことがない場合は、アプリケーションがRabbitを使用していないときにerlを監視してみてください。

頭に浮かぶことの1つは、ループでQueingBasicConsumerを使用している可能性があり、それがCPU使用率に寄与している可能性があるということです。 QueingBasicConsumerを使用していて、それがヒットの原因である場合は、それをEventingBasicConsumerに置き換えて(ビジーウェイトを行わないように)、改善があるかどうかを確認してください。

また、アプリケーションはRabbitをどのように使用していますか? documentation によると、すべてのIConnectionはバックグラウンドスレッドによってバックアップされており、アプリケーションで多数の接続を作成している場合は、速度が低下するもう1つの理由である可能性があります。

2
Svet Angelov