我对 RabbitMq 有一个有点奇怪的问题 - 它使用的 CPU 太少。
我在具有 64 个 CPU 和 200GB RAM 的 Debian 服务器上运行单个 RabbitMq 节点 v3.11.13。 通常的用法如下:350 个连接/380 个通道/121 个队列/300 个消费者。
我的系统性能非常差(1-3k 消息/秒发布,500-1k 消息/秒交付),总体而言,rabbitmq 服务器响应速度非常慢,尽管它使用的 CPU 很少。
我使用确认通道,并且发布确认确认在每条消息发布后很晚才到达(延迟 5-30 秒)。
管理界面对任何点击的响应都很慢。
队列中的消息量从 5k 到 50k 不等,但这主要是由于高延迟,我的消费者具有更大的处理能力,但他们根本无法足够快地从服务器获取消息,因此他们闲置。
我怀疑这里存在一些配置问题,限制了 Rabbit 可以使用的 CPU 核心数量。似乎没有其他原因,因为没有系统资源是限制因素(充足的可用 RAM 和 CPU、磁盘活动非常低、没有等待时间、网络流量低)。
有没有办法配置分配给 RabbitMq 服务器的 CPU 核心数?如果不是,什么可能导致这种低吞吐量、低响应能力、低系统负载问题?
原来原因是太多进程在争夺CPU;服务器试图同时做太多事情,但最终没有一件做好。
服务器不断地在任务之间切换,没有一个任务能够充分利用 CPU。
我将 RabbitMq 移出到一台单独的机器上,原来机器上保留的 Rabbit 和其他服务现在都按预期运行,两台机器上的 CPU 使用率都上升了,响应能力也一样。