任何人都可以向我解释mongodb中的日志,例如日志中每个变量的定义及其含义是什么?
2015-02-26T16:05:24.112 + 0100 [conn1359]命令xxx。$ cmd命令:{ fsync:false,j:false,w:1}} keyUpdates:0 numYields:0 reslen:55 4045ms
2015-02-26T16:05:24.114 + 0100 [conn1296]更新xxx.users查询: nscanned:2015 nscannedObjects:2015 nMatched:1 nModified:1 fastmod:1 keyUpdates:0 numYields:15个锁(微)w:7292 4538ms
答案 0 :(得分:10)
您需要参考MongoDB文档的Database Profiler Output部分,以获取MongoDB写入日志的查询配置文件信息(如读写操作,游标操作和数据库命令)的详细说明。回答你的问题
<强> 的fsync 强>: - 强制mongod进程将所有挂起的写入从存储层刷新到磁盘。
keyUpdates : - 更新在操作中更改的索引键数。更改索引键的性能成本较低,因为数据库必须删除旧密钥并将新密钥插入B树索引。
numYield : - 操作产生的次数,以允许其他操作完成。通常,当操作需要访问MongoDB尚未完全读入内存的数据时,操作会产生。这允许在MongoDB读取数据以进行让步操作时,在内存中有数据的其他操作完成。
responseLength ( reslen ): - 操作结果文档的字节长度。较大的responseLength会影响性能。
nscanned : - MongoDB在索引中扫描以执行操作的文档数。通常,如果nscanned远高于nredurned,则数据库会扫描许多对象以查找目标对象。考虑创建一个索引来改善这一点。
nMatched : - 选择要更新的文档数。如果更新操作导致文档没有变化,例如$ set expression将值更新为当前值,nMatched可以大于nModified。
nModified : - 更新现有文档的数量。如果更新/替换操作导致文档没有更改,例如将字段的值设置为其当前值,则nModified可能小于nMatched。
lockStats locks(micros): - 操作获取和保持锁定所花费的时间(以微秒为单位)。此字段报告以下锁定类型的数据:
R - global read lock
W - global write lock
r - database-specific read lock
w - database-specific write lock
timeLockedMicros : - 操作持有特定锁定的时间(以微秒为单位)。对于需要多个锁的操作,例如锁定本地数据库以更新oplog的操作,此值可能长于操作的总长度(即毫秒)。