web-dev-qa-db-fra.com

RabbitMQ: erl.exe sous utilisation intensive du processeur

J'ai implémenté rabbitmq dans mon application et il s'exécute sur un serveur Windows Server 2008, le problème est que erl.exe prend des utilisations de processeur élevées, atteignant parfois 40 à 45% d'utilisation du processeur, même dans le cas idéal (sans traiter aucune file d'attente). il faut au moins 4-15% d'utilisation du processeur.

Quelle pourrait être la raison de prendre des utilisations élevées du processeur? Y at-il un paramètre ou une autre chose que je dois faire.

15
jkyadav

Vous dites que même si vous ne traitez pas une file d'attente, elle reste à 4-15%, mais votre application est-elle en cours d'exécution? Si vous n'étiez pas auparavant, essayez de surveiller erl lorsqu'aucune application n'utilise Rabbit.

Une chose qui me vient à l’esprit est que vous utiliseriez peut-être QueingBasicConsumer dans une boucle et que cela pourrait contribuer à l’utilisation du processeur. Si vous utilisez QueingBasicConsumer et que c'est ce qui cause le hit, essayez de le remplacer par EventingBasicConsumer (pour ne pas être occupé à attendre) et voyez si vous avez des améliorations. 

Aussi, comment votre application utilise-t-elle Rabbit? Selon la documentation , chaque connexion est sauvegardée par un fil d’arrière-plan et si vous créez un tas de connexions dans votre application, cela pourrait être une autre raison du ralentissement.

1
Svet Angelov