关于MongoDB最佳实践的问题

关于MongoDB最佳实践的问题,mongodb,Mongodb,我正在使用MongoDB1.6进行生产 我有以下问题 有谁能帮我找到这些问题的答案吗 如何识别mongodb中运行时间较长的查询 如何在MongoDB中查看页面错误 这个RAID概念是什么?我如何知道我使用的是什么RAID??(因为上面说如果RAID为10,那么性能会更高) 如何知道MongoDB中工作集的大小 如何在mongodb中查看实例的负载,因为它说 如果实例显示超过65%的负载,则应考虑放大。在正常操作期间,您的负载应始终低于此阈值 首先,您可能需要考虑升级到一个更新的MunGDB

我正在使用MongoDB1.6进行生产

我有以下问题

有谁能帮我找到这些问题的答案吗

  • 如何识别mongodb中运行时间较长的查询
  • 如何在MongoDB中查看页面错误
  • 这个RAID概念是什么?我如何知道我使用的是什么RAID??(因为上面说如果RAID为10,那么性能会更高)
  • 如何知道MongoDB中工作集的大小
  • 如何在mongodb中查看实例的负载,因为它说

    如果实例显示超过65%的负载,则应考虑放大。在正常操作期间,您的负载应始终低于此阈值


  • 首先,您可能需要考虑升级到一个更新的MunGDB版本。目前的版本是2.4,1.6已经很旧了。下面我将参考当前MongoDB版本中的特性。它们在1.6中可能存在,也可能不存在

  • MongoDB将超过给定阈值(默认为100ms)的查询记录到mongod的主日志文件中。您可以使用
    db.setProfilingLevel()
    --slowms
    命令行选项将该阈值设置为不同的值
  • 使用命令
  • 袭击意味着。这意味着您不是在与单个磁盘交谈,而是一组配置为以某种模式对数据进行条带化/复制的磁盘。该模式按单词RAID后面的数字进行分类。MongoDB的推荐模式是RAID 10
  • 工作集由应用程序经常需要的文档组成。无法准确地“测量”工作集,尽管在2.4中,
    db.serverStatus()
    命令提供了工作集的估计值。目标是mongod可以将其正常使用的所有文档直接保存在mongod的内存中。您应该很少在mongostat中看到页面错误。如果您这样做,则表明您的工作集不适合内存
  • 在Unix系统上,可以使用top或正常运行时间来报告负载系数。它不应高于您的机箱的CPU数量的0.65*
  • 回答
  • 使用命令可以找到有关页面错误的信息
  • RAID是,嗯。RAID 10是条带化和镜像的组合,由于其速度和可靠性的结合,通常被认为是数据库存储的更好选择。RAID支持由硬件控制器(如Dell的PERC或HP的Smartarray系列控制器)提供—通常称为硬件RAID,或由Linux md提供。后者通常称为软件RAID
  • 工作集信息只是为了您需要升级(为什么您仍然使用1.6)
  • 使用环境附带的监视工具检查负载

  • 非常感谢您的回答,RAID是否意味着分片?不,RAID只是硬盘的组织方式(对于正在运行的软件来说,它实际上是不可见的),请阅读链接的Wikipedia文章。但它是由Mongo自己管理的,因此与磁盘的RAID设置无关。但从概念上讲,切分与RAID0有关。这个问题似乎离题了,因为它在一个问题中提出了许多不同的问题。