5

我们正在努力从 NServiceBus 4.0.4 和 MSMQ 中获得良好的性能。我们体验到,当消息以每秒大约 40-50 条消息的缓慢速度进入时,一切正常,我们的处理程序能够保持队列为空。

将消息速率提高到平均每秒 400 条消息,处理程序无法再跟上。在这一点上,我们的处理程序只是一个没有任何逻辑的空处理程序。它们似乎可能平均每秒覆盖 400 条消息中的大约 300 条消息,并且消息队列缓慢建立。

在这里,我真的很难理解会发生什么。如果我随后进一步增加到每秒 1500 -2000 条消息,则处理程序会加快游戏速度并每秒处理接近 1500 条消息,队列仍然会建立,但不会产生额外的消息量。

我们试图摆弄NumberOfWorkerThreads(On/Off and 0-100), MaxRetries(On/Off and 0-100), MaximumConcurrencyLevel(On/Off and 0-100), MaximumMessageThroughputPerSecond(On/Off and 0-10000) and IsTransitional(On/Off ) 似乎没有什么影响这种行为。

我们能够发送数千条消息,但无法处理它们,即使今天的处理是从队列中挑选它们并将它们丢弃。

有谁知道这可能来自什么,或者对我们如何提高公共汽车的性能有什么好的建议?

4

1 回答 1

0

在测试这个问题时,我测试了在没有来自 VS Studio 的调试器的情况下运行该过程。事实证明,出于某种原因,我安装了 VS2013 附加调试器。

当我分离调试器时,我仍然与 NServiceBus.host 进程有一些连接。在 VS 之外运行应用程序大大加快了一切,并为我解决了这个问题。然后我重新安装了VS,问题也随之消失了。

任何不便敬请谅解。

于 2013-10-04T07:13:37.343 回答