所有
我已经在中档台式机(第5代i3)上使用RabbitMQ进行性能测试,我发现虽然我的RabbitMQ可以处理数十个交换,甚至100-200个队列和放大器;消费者相当不错,一旦我开始增加超过~30的生产商数量,CPU使用率就会很快达到100%。 RAM使用总是可以接受的(低几百MB)。 我发送各种大小从400字节到40kBytes的消息,有趣的是,这似乎只对CPU(只是RAM)产生了适度的影响。 我一直在玩我的生产商的消息传输速率在1 /秒到100 /秒之间,这肯定会影响CPU但不会像消费者那样多。例如,10个生产商以10毫秒/秒为单位 MUCH 少于100个生成1ms /秒的生产者。 当CPU使用量达到墙壁时,我没有看到任何其他红色/黄色标志,如最大值。 RabbitMQ管理控制台中的Erlang进程数或文件描述符限制。
我目前正在使用Python3 + Pika 0.10以及BlockingConnection和Basic_Publish,而且我的每个生产商都没有指定的交付类型(即不耐用)。来自生产者方面的高度不对称(和沉重)负荷是预期的行为吗? 我可以使用哪些技术来减少生产者对RabbitMQ实例的负担吗?
谢谢和问候