我一直在使用mongostats来诊断我的mongodb实例中的整体活动.如何使用它来诊断性能问题/降级?
我真正感兴趣的一个领域是基于所有其他领域的结果锁定%和预期行为.
我觉得这个功能有点模糊,需要更多地刷新.
锁定的%是每个样本采用全局写锁定(记住,mongo具有进程宽写锁定)的时间百分比.当您增加写入次数(插入,更新,删除,db.eval()等)时,此百分比将增加.高值意味着数据库花费了大量的时间被锁定在等待写入完成,结果因为没有查询可以完成,直到锁被释放.因此,整体查询吞吐量将减少(有时显着).
"fault"意味着mongo正在尝试命中映射到虚拟内存空间但不在物理内存中的数据.基本上它意味着它击中磁盘而不是内存,这表明你没有足够的RAM(或者,例如,你的索引没有正确平衡).如果内存服务,这只在Linux上可用.这应该尽可能接近0,你可以得到它.
"qr:qw"是读取和写入查询队列,如果这些不是零,则表示服务器接收的查询数超过了能够处理的查询数.除非这个数字一直很高或正在增长,否则这不一定是个问题.表示总体系统性能不足以支持您的查询吞吐量.
大多数其他领域都非常自我解释或没有用.如果您希望受到约束,netIn/Out非常有用.如果这些值接近您的最大网络带宽,则会发生这种情况.