0

我正在使用 mongodb 2.4.3,我遇到了一些严重的问题:

首先,性能

我的 mongodb 的服务器日志中大约有 40000 项,如下所示:

10 月 18 日星期五 03:10:15.396 [conn20627] 更新 onlinetime.online_2013_10_18 查询:{ _id: 63545 } 更新:{ $inc: { olt: 12085 } } nscanned:1 nupdated:1 keyUpdates:1 locks(micros) w:89 628毫秒
10 月 18 日星期五 03:10:15.396 [conn20658] 更新 onlinetime.online_2013_10_18 查询:{ _id: 101599 } 更新:{ $inc: { olt: 15018 } } nscanned:1 nupdated:1 keyUpdates:1 locks(micros) w:83 625毫秒
10 月 18 日星期五 03:10:15.396 [conn20656] 更新 onlinetime.online_2013_10_18 查询:{ _id: 143782 } 更新:{ $inc: { olt: 14897 } } nscanned:1 nupdated:1 keyUpdates:1 locks(micros) w:75 600毫秒
10 月 18 日星期五 03:10:15.396 [conn20629] 更新 onlinetime.online_2013_10_18 查询:{ _id: 98588 } 更新:{ $inc: { olt: 13895 } } nscanned:1 nupdated:1 keyUpdates:1 locks(micros) w:82 610毫秒
10 月 18 日星期五 03:10:15.396 [conn20670] 更新 onlinetime.online_2013_10_18 查询:{ _id: 145266 } 更新:{ $inc: { olt: 17629 } } nscanned:1 nupdated:1 keyUpdates:1 locks(micros) w:79 593毫秒
10 月 18 日星期五 03:10:15.396 [conn20642] 更新 onlinetime.online_2013_10_18 查询:{ _id: 71860 } 更新:{ $inc: { olt: 15026 } } nscanned:1 nupdated:1 keyUpdates:1 locks(micros) w:79 604毫秒

这些日志是什么意思?一个简单的更新_id真的{ $inc: { olt: 12085 }需要 628 毫秒才能完成吗?

收集的记录只有20000条左右online_2013_10_18

mongodb 是否存在一些严重的性能问题?还是我只是滥用它?更奇怪的是一个日志项目显示:

更新taxilogs.log_PUSH_2013_10_18查询:{idxs:1827626800}更新:{$addToSet:{acks:{rid:36045,日期:新日期(1382076054148)}},$inc:{acks_c:1}}nscanned:1 nmoved:1 nupdated:1 keyUpdates:0 locks(micros) w:3575082 3575ms

更新需要 3575 毫秒才能完成?

其次:数据丢失

从我的应用程序日志中,我确信更新已发布到 mongodb。但这是我在日志中看到的:

更新:{“idxs”:1827771018},{“$addToSet”:{“acks”:{“rid”:130284,“日期”:{“$date”:“2013-10-18T05:27:08.358Z” }}} ,"$inc" : { "acks_c" : 1}}。
但是当我使用 find({ "idxs" : 1827771018},{acks_c:1,recs_c:1}) 查询数据时,mongodb 返回 { "_id" : ObjectId("5260b3450cf2f82eef378e8d"), "recs_c" : 99 }

acks_c没更新,怎么回事?在 mongodb 的服务器日志中没有发现异常。

mongodb有可能默默地丢失了一些更新吗?

4

0 回答 0