【发布时间】:2013-10-01 04:15:34
【问题描述】:
我们正在努力从 NServiceBus 4.0.4 和 MSMQ 中获得良好的性能。我们体验到,当消息以每秒大约 40-50 条消息的缓慢速度进入时,一切正常,我们的处理程序能够保持队列为空。
将消息速率提高到平均每秒 400 条消息,处理程序无法再跟上。在这一点上,我们的处理程序只是一个没有任何逻辑的空处理程序。它们似乎可能平均每秒覆盖 400 条消息中的大约 300 条消息,并且消息队列缓慢建立。
这是我真正难以理解发生了什么的地方。如果我随后进一步增加到每秒 1500 -2000 条消息,则处理程序会加快游戏速度并每秒处理接近 1500 条消息,队列仍然会建立,但不会产生额外的消息量。
我们试图摆弄NumberOfWorkerThreads(On/Off 和 0-100)、MaxRetries(On/Off 和 0-100)、MaximumConcurrencyLevel(On/Off 和 0-100)、@987654324 @(On/Off and 0 - 10000) 和 IsTransitional(On/Off) 似乎没有什么影响这种行为。
我们能够发送数千条消息,但无法处理它们,即使今天的处理是从队列中挑选它们并将它们丢弃。
有谁知道这可能来自什么,或者对我们如何提高公共汽车的性能有什么好的建议吗?
【问题讨论】:
-
我假设您拥有无限许可?
-
当您签出 repo 时,应该有 perd 测试。你能运行这些并报告吗?
-
@DanielMarbach 表示“性能”测试。
-
我正在运行 NService 开发人员许可,所以我认为应该是 ulimited。丹尼尔:我会用性能测试回来查看
标签: msmq nservicebus