mongodb奇怪的日志文件条目

时间:2014-03-28 08:27:10

标签: mongodb morphia

我在Ubuntu 12.04.1上运行mongodb server 2.4.5。我的应用程序通过Morphia Layer(0.104)和mongo-java-driver(2.12-rc2)写入DB。事情很好。但是在/var/log/mongodb/mongodb.log中有以下条目:

Fri Mar 28 07:45:12.614 [conn3621]更新messdatenDB.meterdata查询:{_ id:" 53351a789932d0c43be306c3" } update:{_ id:" 53351a789932d0c43be306c3",datum:1395989112296,name:" 010034070000",deviceType:" SGH",deviceID:" DC006487&#34 ;,mandantID:" 520dee1299322f8346c57fd6",值:0.7000000000000001,单位:" V",版本:1} idhack:1 nupdated:1 upsert:1 keyUpdates:0 locks(micros)w: 39 318ms ˚F

我只是为这个db / collection获取这些条目。有时每隔几分钟,有时会有几个小时的间隙。

该系列' messdatenDB.meterdata'经常用新数据对象写入 - 永远不会像日志文件那样更新。这是否意味着,创建了双重身份证?任何人都可以给我一个提示,日志文件条目可能会告诉我什么?谢谢你的任何建议!

1 个答案:

答案 0 :(得分:1)

当操作所需的时间超过slowMS阈值时,MongoDB会在日志文件中写入一个条目 - 默认为100毫秒。在这种情况下,您的操作需要318毫秒。所以你看到这个的原因实际上只是由于这个更新完成所花费的时间。您可以通过database profiler调整此阈值并选择将慢速操作记录到性能分析集合中。

对于 _id ,奇怪的是它被包含在更新子句中。根据定义,_id是不可变的,不能更改。在这种情况下,更新正在尝试将_id设置为其现有值,并导致无操作。如果更新尝试更改_id的值,则会失败。