首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当碎片变得繁忙时,Mongos连接速度变慢

当碎片变得繁忙时,Mongos连接速度变慢
EN

Stack Overflow用户
提问于 2012-02-29 05:58:22
回答 1查看 161关注 0票数 0

我在我的mongos上看到了一种行为,当事情在我的一个分片上排队时,C#驱动程序SendMessage需要花费更长的时间,并且mongos必须将调用转发到那个分片。SendMessage不应该独立于分片的繁忙程度吗?我应该能够根据我的网络连接速度而不是分片的繁忙程度对数据进行排队?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-29 07:19:03

SendMessage不应该独立于分片的繁忙程度,我应该能够根据我的网络连接速度而不是分片的繁忙程度来排队吗?

MongoDB不使用缓冲区,但操作系统/网络堆栈有一个缓冲区,用于所有网络流量(通过套接字/连接)。

您真正谈论的是分片服务器的网络缓冲区。你在说“嘿,如果你很忙也没关系,就接受这个请求吧”。但是,网络缓冲区并不是无限长的。在某些时候,缓冲区将是满的,该连接将简单地停止接受更多的数据,直到它被清除。

如果您所发送的操作/数据超过了单个分片所能处理的数量,那么您的选择是有限的:

  1. 更多硬件(磁盘/内存) =>更多分片减少单个磁盘上的负载您的分片密钥分布(尽管几乎不可能更改)
  2. 尝试一些manual chunking以减轻负载

不幸的是,这些都不是简单的解决方案。MongoDB的伟大之处在于它提供了共享数据的能力。但它没有自动处理“热”节点的功能。如果知道哪些块是热的,那么你可以拆分它们,平衡器会移动它们,但如果块中的数据没有变化,就没有自动过程为你做这件事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9490390

复制
相关文章

相似问题

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