我是Mongodb和EC2的新手。 如果我使用下面的单个MongoDb服务器:
高内存超大型实例17.1 GiB内存,6.5 ECU(2个虚拟核心,每个核心为3.25个EC2计算单元),420 GB本地实例存储,64位平台
作为一个外行,如果我们量化I / O,数据以MB /秒为单位。 mongodb服务器可以轻松处理多lessI / O事务,而不会被烧毁。
考虑使用AWS市场上提供的Ubuntu和MongoDb版本的EC2服务器的默认设置。
使用AWS ..你最好将数据分解并用mongo进行水平缩放。 如果你开始,似乎对我来说是大时间的矫枉过正。 再加上你想要复制数据库的mongo。 所以你至less需要另一台具有相同规格的服务器。
就IO而言,除了可用的带宽以外,它与实例大小无关。 要解释,当您使用EC2 / AWS时,这意味着您将使用EBS进行存储,并使用networking来保存您的数据。 因此,build议跨越多个卷使用RAID 10,以便在EBS之一中进行分条(性能),镜像(冗余)和错误卷(否则,arrays与最慢的磁盘一样慢)卷有一个糟糕的一天(它发生,相信我)。
根据本白皮书 (即将更新新信息),EBS卷可以提供
大约100 IOPS,并且具有10个或更多连接的EBS磁盘的arrays的单个实例通常可以达到1,000 IOPS持续
如果您使用预configuration的IOPS实例,那么所有的更改,当然,这也意味着您得到一个专用的IOnetworking接口,消除与主机上的正常stream量的任何争用。
最后剩下的select是基于固态硬盘的实例,即使提供了IOPsfunction也远远超过了这个实例,但是与它们相比还是有相当的价格差异。
一般来说,在MongoDB中,你最终会根据内存的大小来决定内存的大小(如果可能的话,保持你在RAM中的工作集合通常被认为是最重要的),但是如果你不能和你需要定期打开磁盘,那么你可以挤出EBS将是重要的。
我最近介绍了所有这一切,最近的悉尼/墨尔本MongoDB活动以AWS为重点。 你可以在这里find幻灯片:
http://www.10gen.com/presentations/mongodb-sydney-november-2012/operating-mongodb-cloud
这取决于您正在运行的数据库的大小。
如果你正在运行一个小的mongoDB,那么很快的大部分查询都会被caching到内存中,你的mongoDB将不再是磁盘了。
如果它是一个更大的数据库,而钱对你来说不是一个大问题,那么我build议你应该select安装了SSD的高I / O实例,最适合运行mongoDB服务器。