我在我的应用程序中实现了rabbitmq,它在windows server 2008服务器上运行,问题是erl.exe占用了很高的CPU使用率,比如有时它会达到40-45%的CPU使用率,即使在理想情况下(不处理任何队列时)它至少需要 4-15% 的 CPU 使用率。
占用高 CPU 的原因可能是什么?是否有任何设置或任何其他我需要做的事情。
我在我的应用程序中实现了rabbitmq,它在windows server 2008服务器上运行,问题是erl.exe占用了很高的CPU使用率,比如有时它会达到40-45%的CPU使用率,即使在理想情况下(不处理任何队列时)它至少需要 4-15% 的 CPU 使用率。
占用高 CPU 的原因可能是什么?是否有任何设置或任何其他我需要做的事情。
您说即使不处理队列,它仍然是 4-15%,但是您的应用程序正在运行吗?如果您以前没有,请尝试在没有应用程序使用 Rabbit 时监控 erl。
想到的一件事是您可能正在QueingBasicConsumer
循环使用,这可能会导致 CPU 使用率。如果您正在使用QueingBasicConsumer
并且它是导致命中的原因,请尝试将其替换为EventingBasicConsumer
(这样您就不会忙于等待),看看您是否有改进。
另外,您的应用程序如何使用 Rabbit?根据文档,每个 IConnection 都由后台线程备份,如果您在应用程序中创建一堆连接,则可能是速度变慢的另一个原因。