【发布时间】:2010-12-07 22:38:55
【问题描述】:
我正在使用一个在下面使用 MSMQ 的开源 .Net 库。大约一两周后,服务速度变慢(时间不准确,但一般猜测)。似乎正在发生的是来自 MSMQ 的消息每 10 秒仅被读取一次。通常,它们会立即被读取。因此,它们将在 T+10 秒、T+20 秒、T+30 秒等时被读取,与消息发送时间无关(即,有时需要 3 秒才能读取消息,有时需要 9 秒)。
我现在恢复正常的方法是简单地删除和重新创建队列。所以问题是,在 MSMQ 队列中建立什么会导致这种速度变慢?发生减速时,队列中没有消息。是否有任何高级 MSMQ 分析工具可以让您更深入地了解队列(相对于计算机管理)?
哦,我忘了说,将消息写入队列似乎仍然是即时的。它只是阅读显示此行为的消息。
编辑:跟进问题@here,更详细、更集中。
【问题讨论】:
-
MSMQ 进程的内存大小是多少?
-
我不确定你的意思?在哪里可以查看 MSMQ 的内存限制?
-
您确定问题出在 MSMQ 而不是您使用的开源库吗?您是否检查过实际从 MSMQ 读取的代码并确认这是延迟所在?
-
这可能是 C# 中的一个问题,但在我看来它与 MSMQ 相关,因为它是固定的。我想如果这是一个 C# 问题,删除/重新创建队列将无法解决它。不幸的是,我对 MSMQ 或库的了解不够充分,无法对此进行全面调查,但没有其他人在使用指向 MSMQ 的库时遇到此问题(或者特别是我的设置)。如果我能解决这个问题,我会发布解决方案!
-
请参阅stackoverflow.com/questions/1794307/… 了解更详细的问题版本,因为我相信我已经缩小了问题发生的范围。
标签: queue msmq performance