当准备MongoDB部署时,应该尝试了解应用程序如何在生产中的作用和位置。 开发一种一致,可重复的方法来管理部署环境是一个好办法,以便在生产过程中尽可能减少错误。
最好的方法包括原型设置,进行负载测试,监控关键指标,并使用该信息来扩展设置。 该方法的关键部分是主动监控整个系统 - 这将有助于了解生产系统在部署前如何维持,并确定需要添加容量的位置。 例如,了解内存使用中的潜在峰值时可能有助于在写入之前锁定。
为了监控部署,MongoDB提供了以下一些命令 -
mongostat
此命令检查所有运行的mongod实例的状态,并返回数据库操作的计数器。 这些计数器包括插入,查询,更新,删除和游标。 命令还显示遇到页面错误,并显示锁定百分比。这可以用来监控内存不足,写入容量或出现性能问题。
要运行命令,首先要启动mongod实例。 在另一个命令提示符下,转到 mongodb 安装的bin目录,然后键入:mongostat
。
D:\Program Files\MongoDB\Server\3.4\bin> mongostat
以下是命令的输出 -
mongotop
此命令跟踪并报告基于集合的 MongoDB 实例的读写活动。 默认情况下,mongotop会在每秒钟内返回信息,但是可相应地更改信息。应该检查此读写活动是否符合您的应用意图,并且要一次对数据库发出太多的写入操作,从磁盘读取的频率太高,或者超出了工作集合大小。
要运行命令,请启动 mongod 实例。 在另一个命令提示符下,转到 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
命令之后指定一个特定的数字值。假设每隔 5
秒返回一次信息 -
D:\Program Files\MongoDB\Server\3.4\bin> mongotop 5
除了MongoDB工具外,10gen 还提供了一个免费的托管监控服务MongoDB管理服务(MMS),它提供了一个仪表盘,可以让您了解整个集群的指标。