在准备一个 MongoDB 部署时,应该先了解一下应用是如何在生产环境中运行的。使用一个持久性可重复的策略来管理部署环境无疑是很有用的,它将减少你在生产环境中遇到意外麻烦的可能性。
最佳的策略应包括以下几点:规划设置原型,执行负载测试,监控关键参数,并使用该信息来扩展设置。关键在于积极监控整个系统,这能有助于了解生产系统在部署前的运作方式,确定该在何处添加功能。例如,意识到了内存使用中的潜在峰值,就有可能及时地防止写锁定情况的出现。
为了监控部署,MongoDB 提供了多种命令。
mongostat
该命令检查所有运行中的 mongod 实例的状态,返回数据库操作的统计结果。这些统计命令包括插入数、查询数、更新数、删除数以及游标的操作等。有些命令还能显示碰到页面错误的时间,以及写锁的时间百分比。这意味着你遇到一些问题:内存低,写入及性能上出现了一些问题。
先运行 mongod 实例,然后在另一个命令行提示符中输入命令,在 mongodb 安装目录的 bin 目录下输入 mongostat。
D:\set up\mongodb\bin>mongostat
该命令输出结果如下:
mongotop
该命令能够记录并报告 MongoDB 实例基于每个集合的读写活动。mongotop 默认每秒返回一次结果,但我们可以修改间隔时间。你应该检查读写活动是否符合应用预期状态。理想情况下,不应该出现对数据库进行过多的写操作,过于频繁地读取磁盘,或者超出了工作集的容量等情况。
先运行 mongod 实例,然后在另一个命令行提示符中输入命令,在 mongodb 安装目录的 bin 目录下输入 mongotop。
D:\set up\mongodb\bin>mongotop
该命令输出结果如下所示:
要想使 mongotop 命令返回信息的间隔时间变长,可以在 mongotop 命令的后面指定一个数字。
D:\set up\mongodb\bin>mongotop 30
上述命令表示每 30 秒返回数值。
除了 mongodb 工具之外,10gen 还提供了免费的托管监控服务:MongoDB Management Service(MMS)。通过它所提供的仪表板,你可以查看整个集群的各个参数。