1

我正在使用 mongodb 1.6 进行生产。

我有以下问题

谁能帮助我如何找到这些问题的答案?

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

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

4

2 回答 2

0
  1. MongoDB 中记录所有查询
  2. 可以使用serverStatus命令找到有关页面错误的信息
  3. RAID 是,好吧,RAID。RAID 10,条带化和镜像的组合通常被认为是数据库存储的更好选择,因为它结合了速度和可靠性。RAID 支持由硬件控制器(如 Dell 的 PERC 或 HP 的 Smartarray 系列控制器)提供 - 通常称为硬件 RAID,或者由 Linux md 提供。后者通常称为软件 RAID。
  4. 工作集信息只能从 2.4 获得,所以你需要升级(为什么你仍然使用 1.6)?
  5. 使用环境附带的监控工具来检查负载。
于 2013-08-20T12:35:20.053 回答
0

首先,您可能需要考虑升级到更新的 MongoDB 版本。当前版本是 2.4,而 1.6 已经很老了。下面我将引用当前 MongoDB 版本中的特性。它们在 1.6 中可能以这种方式存在,也可能不存在。

  1. MongoDB 将花费超过给定阈值(默认为 100 毫秒)的查询记录到 mongod 的主日志文件。您可以使用db.setProfilingLevel()--slowms命令行选项将该阈值设置为不同的值。
  2. 使用mongostat命令。
  3. RAID 的意思是“独立磁盘冗余阵列”。这意味着您不是在与单个磁盘对话,而是与一组磁盘对话,这些磁盘被配置为以某种模式条带化/复制您的数据。该模式按 RAID 一词后面的数字分类。MongoDB 的推荐模式是 RAID 10。
  4. 工作集包含您的应用程序经常需要的那些文档。没有办法准确地“测量”工作集,尽管该db.serverStatus()命令在 2.4 中提供了对它的估计。目标是 mongod 可以将它通常使用的所有文档直接保存在 mongod 的内存中。您应该很少(如果有的话)在 mongostat 中看到页面错误。如果这样做,则表明您的工作集不适合内存。
  5. 在 Unix 系统上,您将使用 top 或 uptime 来报告负载因子。它不应高于 0.65 * 您的盒子拥有的 CPU 数量。
于 2013-08-20T12:34:38.313 回答