我有一个小的MongoDB副本集(2.4.6),似乎每周大约一次,主要是陷入泥潭,平均负载高峰。 这个应用程序没有看到大量的stream量。 它驻留在EC2中,是一个M1.medium(1个CPU,3.7 GB RAM)。
当我尾巴的日志,我看到这个:
Mon Mar 17 17:16:48.342 [conn62561] warning: ClientCursor::yield can't unlock b/c of recursive lock ns: db_name.jobs top: { opid: 2507609, active: true, secs_running: 0, op: "query", ns: "db_name", query: { findandmodify: "jobs", query: { status: "queued", queue: "upload_hostname" }, sort: { enqueued: 1 }, new: 1, remove: 0, upsert: 0, update: { $set: { status: "dequeued", dequeued: new Date(1395076608340) } } }, client: "10.50.101.10:38766", desc: "conn62561", threadId: "0x7ff2d3772700", connectionId: 62561, locks: { ^: "w", ^db_name: "W" }, waitingForLock: false, numYields: 0, lockStats: { timeLockedMicros: {}, timeAcquiringMicros: { r: 0, w: 4 } } }
我遇到了这个https://groups.google.com/forum/#!topic/mongodb-user/s62QnfT8Vbc,但我是新来的Mongo。
这个问题最近才刚刚发生,我们只有一定数量的用户可以连接。 我正在寻找寻找原因的指导。 我也运行db.collection.find()。explain(),并返回:
"cursor" : "BasicCursor", "isMultiKey" : false, "n" : 505, "nscannedObjects" : 505, "nscanned" : 505, "nscannedObjectsAllPlans" : 505, "nscannedAllPlans" : 505, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { }, "server" : "hostname:27017"
我们可能只需要提高服务器的大小,但是我想尝试一下,找出一周造成的高峰。