RabbitMQ 性能不佳

RabbitMQ poor performance

我们的 RabbitMQ 集群性能不佳。即使闲置。

安装 rabbitmq-top plugin 后,我们看到许多进程的 reductions/sec 非常高。 10 万甚至更多!

问题:

备注:

经过进一步调查,我们发现真正的原因是由两个问题组成的。

  1. RabbitMQ (Erlang) 运行 默认时间配置(使用 bitnami helm chart) assigns only a single scheduler。这对于一些具有少量并发连接的简单应用程序很有用。具有 1000 个连接的生产级必须使用许多更多调度器。从 1 个增加到 8 个调度器显着提高了吞吐量。
  2. 我们的监控正在以每秒大量请求(大约 100 个/秒)来打击 RabbitMQ。监控命中 aliveness-test,它创建一个连接,声明一个队列(未镜像),发布一条消息,然后使用该消息。禁用监控会显着降低负载。 CPU 使用率下降了 80%-90%,reductions/sec 也下降了约 90%.

参考文献

表现:

监控: