在主要数据库操作期间,如何监视MongoDB数据库以验证其状态?

在主要数据库操作期间,如何监视MongoDB数据库以验证其状态?,mongodb,mongodb-query,Mongodb,Mongodb Query,我将很快需要在(azure部署的)生产数据库上执行一些操作: 2大型MongoRestore业务 2指数重建 2次收集统计 我需要确保这些操作不会因为占用太多资源而导致服务器崩溃。我目前不知道我的操作有多“资源饥渴”,以及它们将产生多少负载。我想知道他们破坏数据库的可能性有多大 我的计划是首先在我们的开发环境中执行这些操作,并监控产生的负载,以了解这些操作将产生的“压力” 我基本上有两个问题: 监控作业的最佳工具是什么?专门用于在数据库上运行这些操作时监视数据库的状态/运行状况,以了解操作

我将很快需要在(azure部署的)生产数据库上执行一些操作:

  • 2大型MongoRestore业务
  • 2指数重建
  • 2次收集统计
我需要确保这些操作不会因为占用太多资源而导致服务器崩溃。我目前不知道我的操作有多“资源饥渴”,以及它们将产生多少负载。我想知道他们破坏数据库的可能性有多大

我的计划是首先在我们的开发环境中执行这些操作,并监控产生的负载,以了解这些操作将产生的“压力”

我基本上有两个问题:

  • 监控作业的最佳工具是什么?专门用于在数据库上运行这些操作时监视数据库的状态/运行状况,以了解操作的“安全性”。我目前有一个付费的“核心”版本的Studio 3T。我还有免费版的Mongo Compass

  • 我应该关注哪些指标?我对这一点还不熟悉,所以我假设我已经观察了RAM/CPU的使用情况,以确保它不会超过某个阈值。我怎么知道“多高就是太高”?我还应该找什么

  • 从基础架构监视RAM、CPU、IOPS和存储使用情况
  • mongotop和mongostat给出了一些一般用法
  • 监控mongod/mongos日志(最有价值的信息就在那里)
  • --noIndexRestore(添加此项以避免在加载后立即阻止成员重新创建索引,稍后将在后台创建索引)
  • --numInsertionWorkersPerCollection=num1,num1越大,恢复速度越快(资源使用率越高)
  • --numParallelCollections=num2(默认值=4),num2越大,恢复速度越快(资源使用率越高)
  • --WRITECOCERN=“{w:'MARITY'}”(为了安全起见保留它,减少它将显著提高加载速度)