2

我已经对获取有关慢速查询的信息进行了合理的搜索,但我发现的信息似乎表明您可以从数据库中获取的数据相当有限。

我想知道查询花费了多少时间等待锁,查询使用了哪个索引,等待/从磁盘获取花费了多少时间,以及处理花费了多少时间(对聚合框架特别感兴趣表现)。

我想看看这里的人是否对测量这些参数有任何建议,和/或是否有可能。

提前致谢。:)

*编辑。如果这很重要,我倾向于使用 java mongo 驱动程序。

4

1 回答 1

0

如果您没有查看mongod日志,有些事情可能并不明显 - 所有花费超过“慢毫秒”阈值(默认为 100 毫秒,但您可以更改它)的操作都会记录到 mongod 日志文件中。

以下是它的外观以及如何阅读的示例:

update training.scores query: { score: { $lte: 90.0 } } update: { $set: { grade: "B" } } nscanned:4876 nmoved:2438 nupdated:2438 keyUpdates:0 numYields: 2 locks(micros) w:400877 235ms

您可以在这里看到其中一些字段的含义,但您感兴趣的是锁、numYields、nmoved 和 nupdated 以及 nscanned - 还有 scanAndOrder(即排序是使用索引还是必须在内存中完成)。

我建议查看该文档页面,了解您可以从 system.profile 集合以及 mongod 日志中获得哪些信息,以帮助调查集群的性能。

于 2013-02-04T19:27:03.793 回答