RabbitMQ性能差

RabbitMQ性能差,rabbitmq,erlang,rabbitmqctl,Rabbitmq,Erlang,Rabbitmqctl,我们在RabbitMQ集群中面临着糟糕的性能。即使在空闲的时候 安装后,我们看到许多进程每秒的减少量非常高。10万甚至更多 问题: 这是什么意思 如何控制它 是什么原因导致如此缓慢而没有任何错误 注意事项: 我们的集群在Kubernetes 1.15.11上运行 我们分配了3个节点,每个节点有8个CPU和8 GB的限制。将vm_水印设置为7G。实际使用量约为1.5 CPU和1 GB RAM RabbitMQ 3.8.2。Erlang 22.1 我们没有太多的消费者和生产者。在相当空闲的环境

我们在RabbitMQ集群中面临着糟糕的性能。即使在空闲的时候

安装后,我们看到许多进程每秒的减少量非常高。10万甚至更多

问题:

  • 这是什么意思
  • 如何控制它
  • 是什么原因导致如此缓慢而没有任何错误
注意事项:

  • 我们的集群在Kubernetes 1.15.11上运行
  • 我们分配了3个节点,每个节点有8个CPU和8 GB的限制。将vm_水印设置为7G。实际使用量约为1.5 CPU和1 GB RAM
  • RabbitMQ 3.8.2。Erlang 22.1
  • 我们没有太多的消费者和生产者。在相当空闲的环境中也会出现这种慢度
  • rabbitmqctl状态
    返回详细信息的速度非常慢(有时为2分钟),但不显示任何错误

经过进一步调查,我们发现实际原因由两个问题组成

  • 默认情况下,RabbitMQ(Erlang)运行时配置(使用)仅分配一个。这对于一些具有几个并发连接的简单应用程序来说是很好的。具有1000个连接的生产级必须使用更多的调度程序。将调度程序从1个增加到8个,显著提高了吞吐量
  • 我们的监控正在以每秒大量请求(大约100/秒)敲打RabbitMQ。监控点击
    有效性测试
    ,该测试创建连接,声明队列(未镜像),发布消息,然后使用该消息。禁用监视功能可以显著降低负载80%-90%的CPU使用率下降,每秒的减少量也下降了约90%
  • 参考资料

    性能:

    监测: