我在MongoDb配置文件中启用了分析.
profile=2
slowms=5
Run Code Online (Sandbox Code Playgroud)
mongodb日志包含花费超过5毫秒的所有查询(很奇怪,我认为profile = 2意味着记录所有查询).
对于所有update条目,行结束locks(micros) w:17738 17ms(实际数字变化).对于所有query条目,该行包含locks(micros) r:15208
样品线
Tue Dec 03 02:29:43.084 [conn11] update DbName.CollectionName query: { _id: ObjectId('51dfd2791bbdbe0b44395553')} update: { json for new document } nscanned:1 nmoved:1 nupdated:1 keyUpdates:0 locks(micros) w:17738 17ms
Run Code Online (Sandbox Code Playgroud)
阅读文档,我发现以下部分,
system.profile.lockStats
Run Code Online (Sandbox Code Playgroud)New in version 2.2. The time in microseconds the operation spent acquiring and holding locks. This field reports data for the following lock types: R - global read lock W - global write lock r - database-specific read lock w - database-specific write lock
好的,所以r&w是一些特定于数据库的锁定时间.但是哪一个?花在锁上的时间还是等待获得锁的时间?
profile = 2 slowms = 5
mongodb日志包含花费超过5毫秒的所有查询(很奇怪,我认为profile = 2意味着记录所有查询).
将配置文件设置为级别2意味着所有查询都包含在system.profile上限集合中,而与slowms值无关.这不会影响mongod日志中包含的查询.
将slowms设置为5ms定义了将记录的慢查询的阈值(无论分析如何),并且system.profile如果配置文件是级别1(即配置文件慢查询),则包含在集合中.
如果您还希望在日志中查看查询,可以将loglevel增加到1或更高:
db.adminCommand( { setParameter: 1, logLevel: 1 } )
Run Code Online (Sandbox Code Playgroud)
警告:增加的日志级别会非常嘈杂,并且日志不会像system.profile集合一样上限!
好的,所以r&w是一些特定于数据库的锁定时间.但是哪一个?花在锁上的时间还是等待获得锁的时间?
对于system.profile.lockStatsacquire(timeAcquiringMicros)和holding(timeLockedMicros)锁,有单独的字段.
日志中的"锁定(微软)"详细信息仅显示timeLockedMicros详细信息(源参考:db/lockstat.cpp.
我希望有一个链接,提到日志文件的各个字段是什么
我不知道日志文件格式的任何详细文档,主要MongoDB版本之间肯定存在一些差异.一个很好的开源工具包,用于处理MongoDB日志文件mtools.您可以查看那里的代码,看看它如何解析不同的日志行.
| 归档时间: |
|
| 查看次数: |
3319 次 |
| 最近记录: |