【问题标题】:RabbitMQ: erl.exe taking high CPU usagesRabbitMQ:erl.exe 占用高 CPU 使用率
【发布时间】:2015-10-29 03:51:17
【问题描述】:

我已经在我的应用程序中实现了 rabbitmq,它在 windows server 2008 服务器上运行,问题是 erl.exe 占用了很高的 CPU 使用率,有时它会达到 40-45% 的 CPU 使用率,即使在理想情况下(不处理时)任何队列)它至少需要 4-15% 的 CPU 使用率。

CPU 使用率高的原因可能是什么?有什么设置或其他需要我做的事情吗?

【问题讨论】:

  • 服务器日志上有什么?
  • @old_sound 与 erl 无关。
  • 我的意思是,在 RabbitMQ 日志上
  • @old_sound 没有写在 rabbitmq 日志中
  • 现在有人在听队列吗?如果是这样呢?您已将问题标记为 C#,所以我认为您很可能正在使用 EasyNetQ?你能说明你是如何订阅服务总线的吗? Windows 2008服务器的规格是什么?

标签: c# performance rabbitmq erl


【解决方案1】:

您说即使不处理队列,它仍然是 4-15%,但是您的应用程序是否正在运行?如果您以前没有,请尝试在没有应用程序使用 Rabbit 时监控 erl。

想到的一件事是,您可能在循环中使用QueingBasicConsumer,这可能会增加 CPU 使用率。如果您正在使用QueingBasicConsumer 并且它是导致命中的原因,请尝试用EventingBasicConsumer 替换它(这样您就不会忙着等待),看看您是否有改进。

另外,您的应用程序如何使用 Rabbit?根据documentation,每个 IConnection 都由后台线程备份,如果您在应用程序中创建一堆连接,这可能是速度变慢的另一个原因。

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 2013-08-04
    • 1970-01-01
    • 2016-03-22
    • 2016-07-29
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多