当重写时,Mongodb 3.2.6会停顿很多

时间:2016-06-05 18:50:14

标签: mongodb amazon-web-services amazon-ec2

我有一个包含3亿条文档(212GB数据)而没有索引的集合(_id索引是11GB)。 32GB RAM,8 CPU Amazon Linux AMI m4.2xlarge 500GB SSD EBS卷。每秒3-4Mb写入,带有wiredTiger存储引擎的Mongodb 3.2.6,block_compressor很快。我根据Mongodb在Amazon EC2上安装的文档说明进行了优化。

我发现,服务器不一致地使用大量CPU到700%或总CPU的30%。所有的写入和读取都暂停了大约5到20秒。我在网上阅读了大量资料,并猜测这可能是有线网络快照检查点处理或数据压缩过程的原因。

5-20秒的停顿非常烦人,其他应用程序也会受到影响。

我的问题是解决此问题的替代方案是什么?当我的数据增长到10亿个文档(此刻不需要索引,只是重写)时,它会变得更糟吗?

我可以提出的可能解决方案

  1. 着色(我的大多数工作都是大量写入,没有读取,没有查询,此时不需要索引)
  2. 恢复为MMAPv1

  3. 更多调整或优化

  4. 使用其他数据库

  5. 我是如何解决此问题的?

    我按照How to create and mount an XFS file system on LinuxMaking an Amazon EBS Volume Available for Use将亚马逊ebs卷从ext4更改为xfs格式。

    现在系统看起来像这样。没有停顿。 screenshot from mongostat screenshot from iotop

1 个答案:

答案 0 :(得分:2)

这听起来很像ext4问题。运行WiredTiger时,您应该使用XFS。