У меня есть небольшой набор реплик MongoDB (2.4.6), и кажется, что примерно раз в неделю основной блокируется, а средняя нагрузка резко возрастает. Это приложение не видит большого объема трафика. Он находится в EC2 и является средой M1.medium (1 процессор, 3,7 ГБ ОЗУ).
Когда я просматриваю журнал, я вижу следующее:
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 однако я новичок в Монго.
Эта проблема начала возникать недавно, и у нас есть только определенное # пользователей, которые будут подключаться. Мне нужны рекомендации по поиску причины. Я также запустил db.collection.find (). Объяснение (), и это было возвращено:
"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"
Возможно, нам просто нужно увеличить размер сервера, но я хотел бы попытаться выяснить, что вызывает всплеск раз в неделю.