首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加快MongoDB块在碎片之间的移动速度

如何加快MongoDB块在碎片之间的移动速度
EN

Database Administration用户
提问于 2018-04-09 09:56:37
回答 1查看 2.3K关注 0票数 0

在副本集和MongoDB引擎中的MongoDB 3.6上,我们有一个包含7.7TB数据的大集合。我们开始看到严重的性能问题( CPU的极端使用和数据复制的减速),我们通过临时使用一个新的空数据库来解决这些问题。数据基本上是使用日志,DB模式主要是插入(新的使用数据),偶尔也会为某些用户或报表读取数据。

为了扩展系统并解决长期的性能问题,我们现在创建了两个碎片,其中的想法是拥有一个快速碎片(包含最近2个月的数据)和一个缓慢的碎片(包含所有历史数据)。在n1-standard-8 (8 vCPUs, 30 GB memory)机器上使用SSD disks运行快速碎片,而在带有rotational disksn1-highmem-2 (2 vCPUs, 13 GB memory)机器上运行慢速碎片。

数据库没有受到任何负载(没有新的使用日志插入),基本上什么也不做。切分过程已经开始,但是移动块的速度很慢,移动所有块需要大约40天。有200000块需要从快速移动到慢速碎片,平均块大小为32 be,移动一个块需要大约18秒。

如何加快这个块迁移过程?

更新

我已经了解到,如果源碎片在SSD磁盘上,那么块移动几乎有双倍的速度。

EN

回答 1

Database Administration用户

发布于 2018-04-09 11:14:59

例如,我们有多少个碎片,哪个数据库是切分的,以及碎片集群的配置设置。但是配置服务器保存的最重要的信息之一是将块映射到碎片。

代码语言:javascript
复制
By default MongoDB takes ChunkSize=64 MB

默认情况下,MongoDB以64兆字节作为默认块大小。这意味着,如果一块容量约为64兆字节,或者在64兆字节的范围内,它就会被分割。

代码语言:javascript
复制
1MB<=chunkSize<=1024MB

我们可以在一个兆字节和1024字节以及一个千兆字节之间定义一个块大小。块大小在运行时是可配置的。因此,如果我们决定改变块的大小,我们可以很容易做到这一点。但在我们改变你的块状尺寸之前。

关于您的参考资料,这里这里

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

https://dba.stackexchange.com/questions/203383

复制
相关文章

相似问题

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