MongoDB 状态监控
部署
在准备MongoDB部署时,应尝试了解您的应用程序将如何在生产环境中保持稳定。开发一种一致,可重复的方法来管理部署环境是一个好主意,这样一来,一旦投入生产,您就可以最大程度地减少意外。最好的方法包括对您的设置进行原型制作,进行负载测试,监视关键指标并使用该信息来扩展您的设置。该方法的关键部分是主动监视整个系统-这将帮助您了解生产系统在部署之前将如何承受,并确定需要在何处增加容量。例如,深入了解内存使用量的潜在峰值可能有助于在启动之前扑灭写锁定。为了监视您的部署,MongoDB提供了以下一些命令-
mongostat
此命令检查所有正在运行的mongod实例的状态,并返回数据库操作的计数器。这些计数器包括插入,查询,更新,删除和游标。命令还会显示遇到页面错误的时间,并显示锁定百分比。这意味着您的内存不足,写入容量不足或出现一些性能问题。要运行该命令,请启动您的mongod实例。在另一个命令提示符下,转到mongodb安装的bin目录,然后键入mongostat。
mongostat输出如下-
C:\Users\Administrator>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 1|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 112b 41.6k 2 Aug 31 14:42:42.895
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:43.896
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.6k 2 Aug 31 14:42:44.896
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:45.896
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:46.896
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 112b 41.6k 2 Aug 31 14:42:47.895
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:48.897
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 112b 41.7k 2 Aug 31 14:42:49.895
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:50.895
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 166b 41.8k 2 Aug 31 14:42:51.897
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 112b 41.6k 2 Aug 31 14:42:52.895
*0 *0 *0 *0 0 0|0 0.0% 0.0% 1 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:53.896
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:54.896
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 112b 41.6k 2 Aug 31 14:42:55.895
*0 *0 *0 *0 0 0|0 0.0% 0.0% 0 5.35G 25.0M 0|0 1|0 111b 41.5k 2 Aug 31 14:42:56.897
mongotop
此命令在收集的基础上跟踪并报告MongoDB实例的读写活动。默认情况下,mongotop每秒钟返回一次信息,您可以相应地对其进行更改。您应该检查此读写活动是否符合您的应用意图,并且一次不会对数据库进行太多写入,从磁盘中读取数据的频率过高或超出您的工作集大小。要运行该命令,请启动您的mongod实例。在另一个命令提示符下,转到mongodb安装的bin目录,然后键入mongotop。
以下是命令的输出-
C:\Users\Administrator>mongotop
2020-08-31T14:45:48.165+0800 connected to: mongodb://localhost/
ns total read write 2020-08-31T14:45:49+08:00
admin.system.roles 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
config.system.sessions 0ms 0ms 0ms
config.transactions 0ms 0ms 0ms
local.oplog.rs 0ms 0ms 0ms
local.system.replset 0ms 0ms 0ms
my_db.people 0ms 0ms 0ms
ns total read write 2020-08-31T14:45:50+08:00
admin.system.roles 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
config.system.sessions 0ms 0ms 0ms
config.transactions 0ms 0ms 0ms
local.oplog.rs 0ms 0ms 0ms
local.system.replset 0ms 0ms 0ms
my_db.people 0ms 0ms 0ms
提示:使用命令的 --help 选项来查看使用帮助。