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 选项来查看使用帮助。