Nov*_*ato 6 networking mongodb
我成功基本配置了我的副本集,但我发现读取性能很慢.我的副本集中有2个mongo服务器和1个仲裁器.所有这些都在Centos 6.3最小设置(只是数据库)上运行.
我在另一台Windows服务器2012上也有单个mongo实例.
在构建我的副本集之前,我的Web服务器与Mongo(即Windows实例)在同一个操作系统上.表现很好,结果很像
C#.NET 4.5(同一VM上的IIS和Mongo)读取2000行:AvgObj 2600字节~250ms
现在使用我的副本集,我的读取性能非常慢.当我的Web服务器访问副本集时,我得到的结果就像
C#.NET 4.5(在Centos副本上分离,IIS和Mongo)读取2000行:在AvgObj 2600字节的〜2500ms
我尝试从远程IIS中读取我的单个Mongo瞬间,结果就像
C#.NET 4.5(在Windows上分离,IIS和单Mongo)读取2000行:在AvgObj 2600字节〜600ms
所有服务器都在使用Hyper-V核心服务器的单个物理机器上运行.
我使用最新的C#MongoDB驱动程序1.7版本.从我在命令shell中测试的,在所有mongo服务器上,我的查询在10ms内执行.
任何人都可以给我建议为什么我的副本设置在分离的Centos服务器上具有较慢的读取性能?是网络,司机还是其他什么?
我的C#配置是
var server1 = new MongoServerAddress("1.0.0.1"); //primary
var server2 = new MongoServerAddress("1.0.0.2"); /secundary
var servers = new List<MongoServerAddress> {server1, server2};
var safe = new MongoClientSettings
{
Servers = servers,
ReplicaSetName = "rs0",
ConnectionMode = ConnectionMode.ReplicaSet,
WriteConcern = new WriteConcern
{
Journal = false,
W = 1
},
ReadPreference = new ReadPreference
{
ReadPreferenceMode = ReadPreferenceMode.PrimaryPreferred
}
};
Run Code Online (Sandbox Code Playgroud)
为了在 Hyper V 上获得最佳性能,请确保使用常规网络适配器(非旧版),并在来宾操作系统内安装集成服务。
对于 CentOS 6.x,您可以从此处安装集成服务: http://www.microsoft.com/en-us/download/details.aspx ?id=34603
如果您发现您的虚拟机使用的是旧版网络适配器,请注意,当您添加新适配器时,您必须重新配置来宾 (CentOS) 操作系统内部的网络。
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |