我在 EC2 中设置了两个具有 RAID10 的 Mongo 实例。我使用这两个服务器设置了副本集,发现这个副本在网络上非常非常慢。如果我在本地登录并在 mongo 控制台内发出查询,一切都很好。我在这里测试了磁盘速度没有问题:
sudo dd if=/dev/zero of=/data/output2.img bs=8k count=100k
102400+0 records in
102400+0 records out
838860800 bytes (839 MB) copied, 1.87101 s, 448 MB/s
类似设置无需复制即可快速运行。我该如何追踪此问题?
答案1
这在细节上有点少——你没有提到一些重要信息,比如到底是什么慢了(例如,这是通过驱动程序访问的吗)。复制会给主服务器增加一点负载,但总的来说相当轻量。
您正在运行多大规模的实例,在哪里运行(跨区域复制等)?当您将复制数据添加到组合中时,您的可用带宽可能会饱和。不过,我认为只有在您运行写入繁重的应用程序或执行 slaveOK 读取时才会出现这种情况。
最后,作为在 AWS 中运行 MongoDB 的一般指南,请查看此白皮书:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
官方文档中有以下说明: