2013-01-08 62 views
0

我們是uisng Mongdb,用於當前正在生產的我們的應用程序之一。如何在生產環境中跟蹤MongoDB查詢響應時間?

有時,我們在用戶前端遇到速度緩慢的(即數據加載速度慢於誰已經loggged在用戶)

我們要排除緩慢的可能的問題。 我的問題是,有什麼辦法可以知道MongoDB查詢需要多少時間來響應?

非常感謝。

更新部分

謝謝,這是從蒙戈DB開發利用策略箱抽取的樣本結果

{ "ts" : ISODate("2013-01-02T19:11:16.822Z"), "op" : "query", "ns" : "ravi.system.indexes", "query" : { "expireAfterSeconds" : { "$exists" : true } }, "ntoreturn" : 0, "ntoskip" : 0, "nscanned" : 1, "keyUpdates" : 0, "numYield" : 0, "lockStats" : { "timeLockedMicros" : { "r" : NumberLong(65), "w" : NumberLong(0) }, "timeAcquiringMicros" : { "r" : NumberLong(4), "w" : NumberLong(5) } }, "nreturned" : 0, "responseLength" : 20, "millis" : 0, "client" : "0.0.0.0", "user" : "" } 

{ "ts" : ISODate("2013-01-02T19:10:16.822Z"), "op" : "query", "ns" : "ravi.system.indexes", "query" : { "expireAfterSeconds" : { "$exists" : true } }, "ntoreturn" : 0, "ntoskip" : 0, "nscanned" : 1, "keyUpdates" : 0, "numYield" : 0, "lockStats" : { "timeLockedMicros" : { "r" : NumberLong(66), "w" : NumberLong(0) }, "timeAcquiringMicros" : { "r" : NumberLong(4), "w" : NumberLong(4) } }, "nreturned" : 0, "responseLength" : 20, "millis" : 0, "client" : "0.0.0.0", "user" : "" } 

但是從這個我怎麼能真正知道的是採取什麼樣的時間,每個查詢? ?

+1

millis字段是「服務器執行操作的時間(以毫秒爲單位),此時間不包括網絡時間,也不包括獲取鎖的時間。請參閱這裏的所有領域的解釋:http://docs.mongodb.org/manual/reference/database-profiler/ –

回答

7

使用事件探查器,設置db.setProfilingLevel(2)來啓用它。 和db.system.profile.find().sort({$natural:-1})查看記錄

+0

謝謝能夠請請閱讀我的問題上面的更新部分 – Pawan

+0

毫秒是經過的時間。 – slggamer