首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解释分发服务器的存储和控制队列中的消息数?

如何解释分发服务器的存储和控制队列中的消息数?
EN

Stack Overflow用户
提问于 2017-04-15 03:02:46
回答 1查看 161关注 0票数 0

本文讲述了Nsb Master节点用来控制消息负载的控制队列,尽管对我来说,它仍然不清楚如何解释队列中消息数量的不平衡:https://docs.particular.net/nservicebus/msmq/distributor/

我在我的Nsb服务中观察到速度很慢,以前从未遇到过速度慢的情况。由于某些原因,与过去相比,每个主节点创建的并行线程较少,并且工作节点或主节点配置没有变化,例如要分配的最大线程数量。我想知道是Master节点不想供养工人,还是工人不想承担更多的工作。

我看到控制队列中的消息数量从15跳到40,而存储只有5-8。我是否应该将其解释为员工已准备好工作,而总代理商无法向他们发送更多消息?谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-04-20 16:59:55

只要分发者在发送消息,控件和storage queue中的数字就会上下跳跃。进入control queue的消息将立即从该队列弹出并放到storage queue上。进入总代理商primary queue的消息将立即导致storage queue的第一条消息被弹出。很难解释正在运行的分发服务器队列中的消息数量,因为当您使用Computer Management或Queue Explorer查看这些数量时,它们可能已经发生了变化。

最极端的情况是:

1.分发服务器的主输入队列中没有消息,任何工作进程上也没有发生任何工作。

  • 输入队列:0
  • 控制队列:0
  • 存储队列:工作线程数*每个工作线程配置的线程数

2.所有工作人员都在满负荷工作。没有人能够承担更多的工作。

  • 输入队列: 0+ (随着新邮件的传入而增长)
  • 控制队列:0
  • 存储队列: 0

在运行的系统中,它可以是这两个极端之间的任何东西,因此,不幸的是,仅从controlstorage queue的快照很难说太多。

以下是一些故障排除提示:

  • 如果storage queue为空,则分发服务器无法分发更多工作。它不知道将其发送到何处。如果所有工作线程都被完全占用,因为在处理完消息之前,它们不会向control queue发送任何就绪消息,就会发生这种情况。
  • 如果与所有工作线程的工作线程总数相比,storage queue始终较小,则您正在接近工作线程的总最大容量。
  • ,我建议你开始查看工人的日志,看看他们所做的工作是否比平时花费了更长的时间。要检查的较慢的数据库/第三方integration?
  • Another问题是是否向托管分发服务器的计算机添加了IO密集型内容。如果分发服务器已经以接近最大容量的速度运行,则添加额外的IO可能会降低机器上的MSMQ速度,从而降低吞吐量。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43417662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档