2015-08-06 11 views
14

Ich habe Rabbitmq in meiner Anwendung implementiert und es läuft auf Windows Server 2008 Server, das Problem ist, dass erl.exe hohe CPU-Auslastung wie irgendwann erreicht 40-45% CPU-Nutzungen, selbst im Idealfall (wenn keine Warteschlange bearbeitet wird) dauert es mindestens 4-15% CPU-Auslastung.RabbitMQ: erl.exe nimmt hohe CPU-Verwendungen

Was könnte der Grund für hohe CPU-Verwendungen sein? Gibt es irgendwelche Einstellungen oder andere Dinge, die ich tun muss?

+0

Was ist in den Serverprotokollen? –

+0

@old_sound Nichts über erl. – jkyadav

+0

Ich meine, auf den RabbitMQ Logs –

Antwort

1

Sie sagen, dass selbst wenn keine Warteschlange verarbeitet wird, es immer noch bei 4-15% ist, aber läuft Ihre Anwendung? Wenn Sie nicht vorher waren, versuchen Sie, erl zu überwachen, während keine Anwendung Rabbit verwendet.

Eine Sache, die in den Sinn kommt, ist, dass Sie die QueingBasicConsumer in einer Schleife verwenden und das könnte zur CPU-Nutzung beitragen. Wenn Sie QueingBasicConsumer verwenden und es den Treffer verursacht, versuchen Sie es mit EventingBasicConsumer zu ersetzen (so dass Sie nicht damit beschäftigt sind zu warten) und sehen Sie, ob Sie Verbesserungen haben.

Auch, wie ist Ihre Anwendung mit Rabbit? Gemäß der documentation wird jede IConnection von einem Hintergrund-Thread unterstützt und wenn Sie eine Menge von Verbindungen in Ihrer Anwendung erstellen, könnte es ein weiterer Grund für die Verlangsamung sein.