如何使用mongostats诊断mongodb中的性能问题

时间:2011-01-21 16:36:33

标签: performance mongodb

我一直在使用mongostats来诊断我的mongodb实例中的整体活动。如何使用它来诊断性能问题/降级?

我真正感兴趣的一个领域是基于所有其他领域的结果锁定%和预期行为。

我觉得这个功能有点含糊,需要多刷一点。

1 个答案:

答案 0 :(得分:6)

锁定的%是每个样本采用全局写锁定(记住,mongo有一个进程范围的写锁定)的时间百分比。当您增加写入次数(插入,更新,删除,db.eval()等)时,此百分比将增加。高值意味着数据库花费大量时间锁定等待写入完成,因此在锁定释放之前无法完成任何查询。因此,整体查询吞吐量将会降低(有时会非常显着)。

“faults”意味着mongo正在尝试命中映射到虚拟内存空间但不在物理内存中的数据。基本上它意味着它击中磁盘而不是内存,这表明你没有足够的RAM(或者,例如,你的索引没有正确平衡)。如果内存服务,这只在Linux上可用。这应该尽可能接近0。

“qr:qw”是读取和写入查询队列,如果这些不是零,则表示服务器接收的查询数超过了能够处理的查询数。除非这个数字一直很高或正在增长,否则这不一定是个问题。表示总体系统性能不足以支持您的查询吞吐量。

大多数其他字段都非常自我解释或没有用处。如果您希望受到约束,netIn / Out非常有用。如果这些值接近您的最大网络带宽,就会发生这种情况。