在你已經安裝部署並允許MongoDB服務後,你必須要瞭解MongoDB的運行情況,並查看MongoDB的效能。 這樣在大流量得情況下可以很好的應對並保證MongoDB正常運作。 MongoDB中提供了mongostat 和 mongotop 兩個命令來監控MongoDB的運行情況。 mongostat 命令
mongostat是mongodb內建的狀態偵查工具,在命令列下使用。 它會間隔固定時間擷取mongodb的當前運行狀態,並輸出。 如果你探索資料庫突然變慢或者有其他問題的話,你第一手的操作就考慮採用mongostat來查看mongo的狀態。 啟動你的Mongod服務,進入到你安裝的MongoDB目錄下的bin目錄, 然後輸入mongostat命令, 如下所示:
D:\Java\MongoDB\Server\3.4\bin>mongostat #以上命令輸出結果如下: insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 893M 98.0M 0|0 1|0 169b 48.9k 1 Oct 13 08:27:06.194 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 893M 98.0M 0|0 1|0 157b 45.6k 1 Oct 13 08:27:07.195 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 893M 98.0M 0|0 1|0 156b 45.3k 1 Oct 13 08:27:08.203 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 893M 98.0M 0|0 1|0 159b 46.0k 1 Oct 13 08:27:09.196 mongotop 命令
mongotop也是mongodb下的一個內建工具,mongotop提供了一個方法,用來跟蹤一個MongoDB的執行個體, 查看哪些大量的時間花費在讀取和寫入資料。 mongotop提供每個集合的水平的統計資料。 預設情況下,mongotop傳回值的每一秒。 啟動你的Mongod服務,進入到你安裝的MongoDB目錄下的bin目錄, 然後輸入mongotop命令, 如下所示:
D:\Java\MongoDB\Server\3.4\bin>mongotop 2017-10-13T08:36:00.002+0800 connected to: 127.0.0.1 ns total read write 2017-10-13T08:36:01+08:00 admin.system.roles 0ms 0ms 0ms admin.system.users 0ms 0ms 0ms admin.system.version 0ms 0ms 0ms local.startup_log 0ms 0ms 0ms local.system.replset 0ms 0ms 0ms mongotest.abc 0ms 0ms 0ms mongotest.b 0ms 0ms 0ms mongotest.c2 0ms 0ms 0ms mongotest.users 0ms 0ms 0ms 2017-10-13T08:36:01.974+0800 signal 'interrupt' received; forcefully terminating 帶參數執行個體
mongotop 10 後面的10是<sleeptime>參數 ,可以不使用, 等待的時間長度,以秒為單位,mongotop等待調用之間。 通過的預設mongotop返回資料的每一秒。
mongotop --locks 報告每個資料庫的鎖的使用中,使用mongotop --locks,這將產生以下輸出: 輸出結果欄位說明: ns: 包含資料庫命名空間,後者結合了資料庫名稱和集合。 db: 包含資料庫的名稱。名為 . 的資料庫針對全域鎖定,而非特定資料庫。 total: mongod 花費的時間工作在這個命名空間提供總額。 read: 提供了大量的時間,這mongod花費在執行讀操作,在此命名空間。 write: 提供這個命名空間進行寫操作,這mongod花了大量的時間。