我已经在我的应用程序中实现了rabbitmq并且它在Windows Server 2008服务器上运行,问题是erl.exe占用高CPU用量,有时甚至达到40-45%CPU使用率,即使在理想情况下(不处理时)任何队列)至少需要4-15%的CPU使用率。
使用高CPU使用率的原因是什么?是否有任何设置或任何其他我需要做的事情。
答案 0 :(得分:2)
你说即使不处理队列,它仍然是4-15%,但你的应用程序是否正在运行?如果您之前没有,请尝试在没有应用程序使用Rabbit的情况下监视erl。
我想到的一件事是您可能在循环中使用QueingBasicConsumer
,这可能会导致CPU使用率。如果您正在使用QueingBasicConsumer
并且它是导致命中的原因,请尝试用EventingBasicConsumer
替换它(这样您不会忙着等待)并查看您是否有改进。
另外,您的应用程序如何使用Rabbit?根据{{3}},每个IConnection都由后台线程备份,如果你在应用程序中创建了一堆连接,那么这可能是减速的另一个原因。