我成功地基本configuration我的副本集,但我注意到读取速度慢。 我有两个mongo服务器和一个仲裁器在我的副本集。 所有正在运行的Centos 6.3最小安装(只是数据库)。
我在Windows Server 2012上也有单一的mongo实例。
在构build我的副本集之前,我的Web服务器与Mongo(即Windows实例)在同一个操作系统上。 performance很好,结果就像
C#.NET 4.5(同一虚拟机上的IIS和Mongo)读取2000行:在AvgObj 2600字节〜250ms
现在与我的副本集我有非常缓慢的阅读性能。 当我的Web服务器访问副本集,我很喜欢的结果
C#.NET 4.5(在Centos Replica上分开,IIS和Mongo)读取2000行:在AvgObj上为〜2500ms 2600字节
我试图从我的单个Mongo即时从远程IIS读取,结果就像
C#.NET 4.5(在Windows上分开,IIS和单个Mongo)读取2000行:在AvgObj 2600字节〜600ms
所有服务器都运行在具有Hyper-V核心服务器的单个物理机器上。
我使用最新的C#MongoDB驱动程序1.7版本。 从我testing的所有Mongo服务器上,我的查询在10ms内执行。
任何人都可以给我build议,为什么我的分离的Centos服务器上设置的副本有缓慢的读取性能?
如果您尝试直接从副本中读取而未设置slaveok = true,则副本将代理从主节点和中继节点的读取。 这可能是您的大部分延迟的来源。 仔细检查你的首选模式,确保你设置了一个允许直接从非主节点读取的模式。