我正在創建一個應用程序,它有幾個服務器同時運行,並且在每個服務器上有多個進程正在處理數據,以便查詢/更新和插入。因此,總共有35個以上的併發連接正在進行。這些服務器都處理髮送到單個mongodb服務器(mongod)的數據。目前我沒有分割我的數據庫。問題是我受到我的mongodb服務器的限制。每當我添加更多的服務器時,查詢/更新/插入的運行速度會變慢(它們需要更多時間)。我正在運行這個mongohq.com,然後我最近爲mongod創建了我自己的amazon服務器,但我仍然得到幾乎相同的結果。下面的列表是我的db.serverStatus({})。我對mongodb有點新,但基本上我需要知道如何加快mongo服務器進行併發操作的過程。我需要它能夠處理很多請求。我知道分片是一種可能的解決方法,但如果可以的話,你可以列出一些可用的其他解決方案。謝謝。MongoDB限制併發量
> db.serverStatus({})
{
"host" : "ip-10-108-245-21:28282",
"version" : "2.0.1",
"process" : "mongod",
"uptime" : 11380,
"uptimeEstimate" : 11403,
"localTime" : ISODate("2011-12-13T22:27:56.865Z"),
"globalLock" : {
"totalTime" : 11380429167,
"lockTime" : 86138670,
"ratio" : 0.007569017717695356,
"currentQueue" : {
"total" : 0,
"readers" : 0,
"writers" : 0
},
"activeClients" : {
"total" : 35,
"readers" : 35,
"writers" : 0
}
},
"mem" : {
"bits" : 64,
"resident" : 731,
"virtual" : 6326,
"supported" : true,
"mapped" : 976,
"mappedWithJournal" : 1952
},
"connections" : {
"current" : 105,
"available" : 714
},
"extra_info" : {
"note" : "fields vary by platform",
"heap_usage_bytes" : 398656,
"page_faults" : 1
},
"indexCounters" : {
"btree" : {
"accesses" : 798,
"hits" : 798,
"misses" : 0,
"resets" : 0,
"missRatio" : 0
}
},
"backgroundFlushing" : {
"flushes" : 189,
"total_ms" : 29775,
"average_ms" : 157.53968253968253,
"last_ms" : 185,
"last_finished" : ISODate("2011-12-13T22:27:16.651Z")
},
"cursors" : {
"totalOpen" : 34,
"clientCursors_size" : 34,
"timedOut" : 0,
"totalNoTimeout" : 34
},
"network" : {
"bytesIn" : 89743967,
"bytesOut" : 59379407,
"numRequests" : 840133
},
"opcounters" : {
"insert" : 5437,
"query" : 8957,
"update" : 4312,
"delete" : 0,
"getmore" : 76,
"command" : 821388
},
"asserts" : {
"regular" : 0,
"warning" : 0,
"msg" : 0,
"user" : 0,
"rollovers" : 0
},
"writeBacksQueued" : false,
"dur" : {
"commits" : 29,
"journaledMB" : 0.147456,
"writeToDataFilesMB" : 0.230233,
"compression" : 0.9999932183619632,
"commitsInWriteLock" : 0,
"earlyCommits" : 0,
"timeMs" : {
"dt" : 3031,
"prepLogBuffer" : 0,
"writeToJournal" : 29,
"writeToDataFiles" : 2,
"remapPrivateView" : 0
}
},
"ok" : 1
}
我在狀態報告中看不到任何內容這看起來像一個大問題。隊列是空的,鎖比率低,看起來不算太壞。 v2應該比舊版本具有更好的併發性。我建議你發佈在谷歌用戶組。 – mnemosyn 2011-12-13 22:26:33
謝謝,是的,我只是更新了我的serverStatus響應。我正在顯示一個不正確的 - 我的錯誤。我將發佈到谷歌用戶組。我正在運行mongo v2.0.1。我也在和mongohq的支持交流,他們說這可能是索引問題,我們正在尋求解決方案。 – PetersCodeProblems 2011-12-13 22:33:17