mongodb在尝试同步数据时保持循环

我把我的独立的mongodb转换成副本集。 我已经添加了一个成员(并且我想以后再添加两个成员,并closures主服务器)。

我的主要mongodb运行2.2.3,并且运行最新版本的mongodb 2.6.4的新副本成员。

这两个数据库的运行在Ubuntu服务器14.04,在微软Azure和他们正在运行在相同的亲和组。 (Vm尺寸是A2)

我已经编辑了“nofile”和“nproc”的ulimit到65535,在看到MMMS监控build议之后,BUT只在副本上,以避免机器的重启时间,是否有必要?

我在主数据库上find了一个超过80米的文件,并在现场制作中运行。 这是否是这样的?

经过几个小时的同步数据,TTL显示以下错误,并开始重新同步。 并保持循环。

[rsSync]完成build立底层,即将提交

[rsSync]旧的日志文件将被删除:/datadrive/data/journal/j._9

[rsSync]build立索引完成。 扫描55381316总logging。 1348.97秒

[conn221] serverStatus非常慢:{after basic:0,after assert:0,after backgroundFlushing:0,after connections:0,after cursorors:0,after dur:0,after extra_info:0,after globalLock:0,after indexCounters:0,锁后:0,网后:0,后opcounters:0,后opcountersRepl:0,后recordStats:744214,后repl:744214,在末尾:744214}

[conn221] command admin。$ cmd command:serverStatus {serverStatus:1} keyUpdates:0 numYields:0 locks(micros)r:31 reslen:3920 1243515ms

[conn228] serverStatus很慢:{后基本:0,后断言:0,之后backgroundFlushing:0,后连接:0,后游标:0,后dur:0,后extra_info:0,后globalLock:0,后indexCounters:0,锁后:0,网后:0,后opcounters:0,后opcountersRepl:0,后recordStats:634932,后repl:634932,在末:634932}

[conn228] command admin。$ cmd command:serverStatus {serverStatus:1} keyUpdates:0 numYields:0 locks(micros)r:33 reslen:3920 1073310ms

[conn235] serverStatus很慢:{后基本:0,后断言:0,之后backgroundFlushing:0,后连接:0,后游标:0,后dur:0,后extra_info:0,后globalLock:0,后indexCounters:0,锁后:0,网后:0,后opcounters:0,后opcountersRepl:0,后recordStats:578551,后repl:578551,在末尾:578551}

[conn235] command admin。$ cmd command:serverStatus {serverStatus:1} keyUpdates:0 numYields:0 locks(micros)r:28 reslen:3920 963376ms

[conn194] SocketException处理请求,closures客户端连接:9001套接字exception[SEND_ERROR] server [ServerIp:1250]

[conn252] SocketException处理请求,closures客户端连接:9001套接字exception[SEND_ERROR] server [ServerIp:1248]

[rsSync]套接字说send()errno:110连接超时ServerIp:27017

[rsSync] replSet初始同步exception:9001套接字exception[SEND_ERROR]服务器[Serverip:27017]剩余8次尝试

[rsSync] replSet初始同步暂挂

[rsSync] replSet同步到:[ServerAddress]:27017

[rsSync] replSet初始同步删除所有数据库

[rsSync] dropAllDatabasesExceptLocal 2

[rsSync] removeJournalFiles

[rsSync] replSet初始同步复制所有数据库

[rsSync] replSet初始同步克隆db:PkgsKeyValues

[FileAllocator]分配新的数据文件/datadrive/data/PkgsKeyValues.ns,用零填充…

[FileAllocator]分配新的数据文件/datadrive/data/PkgsKeyValues.3,用零填充…

[FileAllocator]完成分配datafile /datadrive/data/PkgsKeyValues.3,大小:512MB,耗时0.124秒

有任何想法吗?

基于这种有限的信息很难说,但是这看起来像是在尝试同步时正在消除次要和主要之间的联系。 如果它几乎在同一时间重复发生,则表明networking中的某些内容正在实施最长的连接时间。 如果它是随机发生的,则表明networking本身有一些不可思议的东西(如果没有重要的故障排除,则不可能分辨出来)。

从日志片断中也可以看出,当发生这种情况时,辅助服务器将承受巨大的负载,因为运行ServerStatus需要花费数小时(通常在不负载的情况下小于100毫秒),现在正在build立一个索引,一个阻塞操作,所以这可能是一个红色的鲱鱼,如果这是一个大型指数。 如果这不是一个大的指标,那么表明中学在资源方面的configuration有点不足。

如果你不能解决循环,你可以采取其他的措施,像复制数据文件一样启动和运行,除非你有快照选项,包括停止写入或在复制期间减less停机时间。