當準備MongoDB部署時,應該嘗試了解應用程序如何在生產(chǎn)中的作用和位置。 開發(fā)一種一致,可重復的方法來管理部署環(huán)境是一個好辦法,以便在生產(chǎn)過程中盡可能減少錯誤。
最好的方法包括原型設置,進行負載測試,監(jiān)控關(guān)鍵指標,并使用該信息來擴展設置。 該方法的關(guān)鍵部分是主動監(jiān)控整個系統(tǒng) - 這將有助于了解生產(chǎn)系統(tǒng)在部署前如何維持,并確定需要添加容量的位置。 例如,了解內(nèi)存使用中的潛在峰值時可能有助于在寫入之前鎖定。
為了監(jiān)控部署,MongoDB提供了以下一些命令 -
mongostat
此命令檢查所有運行的mongod實例的狀態(tài),并返回數(shù)據(jù)庫操作的計數(shù)器。 這些計數(shù)器包括插入,查詢,更新,刪除和游標。 命令還顯示遇到頁面錯誤,并顯示鎖定百分比。這可以用來監(jiān)控內(nèi)存不足,寫入容量或出現(xiàn)性能問題。
要運行命令,首先要啟動mongod實例。 在另一個命令提示符下,轉(zhuǎn)到 mongodb 安裝的bin目錄,然后鍵入:mongostat。
D:\Program Files\MongoDB\Server\3.4\bin> mongostat
以下是命令的輸出 -

mongotop
此命令跟蹤并報告基于集合的 MongoDB 實例的讀寫活動。 默認情況下,mongotop會在每秒鐘內(nèi)返回信息,但是可相應地更改信息。應該檢查此讀寫活動是否符合您的應用意圖,并且要一次對數(shù)據(jù)庫發(fā)出太多的寫入操作,從磁盤讀取的頻率太高,或者超出了工作集合大小。
要運行命令,請啟動 mongod 實例。 在另一個命令提示符下,轉(zhuǎn)到 mongodb 安裝的bin目錄,然后鍵入:mongotop。
D:\Program Files\MongoDB\Server\3.4\bin> mongotop
以下是命令的輸出 -
yiibai@ubuntu:~/mongobak$ mongotop
2017-07-02T18:27:23.485-0700 connected to: 127.0.0.1
ns total read write 2017-07-02T18:27:24-07:00
admin.system.roles 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
local.system.replset 0ms 0ms 0ms
test.article 0ms 0ms 0ms
test.inventory 0ms 0ms 0ms
test.mycol 0ms 0ms 0ms
ns total read write 2017-07-02T18:27:25-07:00
admin.system.roles 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
local.system.replset 0ms 0ms 0ms
test.article 0ms 0ms 0ms
test.inventory 0ms 0ms 0ms
test.mycol 0ms 0ms 0ms
要更改 mongotop 命令以更多少時間間隔返回信息,請在 mongotop 命令之后指定一個特定的數(shù)字值。假設每隔 5 秒返回一次信息 -
D:\Program Files\MongoDB\Server\3.4\bin> mongotop 5
除了MongoDB工具外,10gen 還提供了一個免費的托管監(jiān)控服務MongoDB管理服務(MMS),它提供了一個儀表盤,可以讓您了解整個集群的指標。