Mongodb 为什么oplog搜索在主服务器上花费的时间太长

Mongodb 为什么oplog搜索在主服务器上花费的时间太长,mongodb,Mongodb,我们的mongo日志显示:我们有4个副本集 Thu Jul 31 03:31:33.940 [conn2117994] getmore local.oplog.rs query: { ts: { $gte: Timestamp 1406791765000|9 } } cursorid:6285460755727107211 ntoreturn:0 keyUpdates:0 locks(micros) r:111 nreturned:0 reslen:20 5011ms Thu Jul 31 03

我们的mongo日志显示:我们有4个副本集

Thu Jul 31 03:31:33.940 [conn2117994] getmore local.oplog.rs query: { ts: { $gte: Timestamp 1406791765000|9 } } cursorid:6285460755727107211 ntoreturn:0 keyUpdates:0 locks(micros) r:111 nreturned:0 reslen:20 5011ms
Thu Jul 31 03:31:33.976 [conn2117999] getmore local.oplog.rs query: { ts: { $gte: Timestamp 1406791765000|9 } } cursorid:6285462893114917907 ntoreturn:0 keyUpdates:0 locks(micros) r:111 nreturned:0 reslen:20 5011ms

Thu Jul 31 03:31:38.952 [conn2117994] getmore local.oplog.rs query: { ts: { $gte: Timestamp 1406791765000|9 } } cursorid:6285460755727107211 ntoreturn:0 keyUpdates:0 locks(micros) r:95 nreturned:0 reslen:20 5011ms

ecset01:PRIMARY> db.printReplicationInfo()
configured oplog size: 83927.3283203125MB
log length start to end: 2399486secs (666.52hrs)
oplog first event time: Tue Jun 24 2014 22:58:20 GMT-0400 (EDT)
oplog last event time: Tue Jul 22 2014 17:29:46 GMT-0400 (EDT)
now: Tue Jul 22 2014 17:29:46 GMT-0400 (EDT)
ecset01:PRIMARY>

如果这是一个问题,或者我们需要减少oplogsize,请告诉我。

这是正常行为。复制使用一个可裁剪的光标从oplog读取数据,并带有waitdata选项。这意味着,如果没有满足查询的数据(例如,没有ts大于传入的时间戳的文档),它将等待几秒钟-大约5秒钟,这就是为什么您会看到5011毫秒的查询时间。这不是一个值得关注的问题-这意味着您没有最近的更新。如果要添加/修改/删除文档,则会看到getmore条目返回得更快

有关wire协议层的可裁剪光标和数据选项的详细信息:

您可能会发现这个讨论很有趣: