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.
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.