0

我有一个托管在 Galaxy 上的流星应用程序,数据库位于 mLab 上。

如果文档很小,更新文档的流星方法可以正常工作,但是如果大于一定大小,则 Galaxy CPU 使用率会上升到 100%,并且容器会变得不健康。

Meteor APM 报告数据库更新耗时 <400ms,而“计算”(直接在更新之前)耗时 80 000+ ms。

这是代码的简化示例。

该集合在一个文件中声明并分配了一个模式。

trips.js

const Trips = new Mongo.Collection('trips');
//schema is declared and attached

export {Trips}

这些方法在另一个文件中声明。

方法.js

import {Trips} from '../trips';

Meteor.methods({

    'updateTrip' (tripId, trip){
        check(tripId, String);
        check(trip, Object);

        Trips.update({
             _id: tripId
        },{
           $set: {
             field1: trip.field1,
             field2: trip.field2,
             field3: trip.field3
           }
        });
    }       
});

在某些情况下,字段是嵌套有大对象的对象。

我是 Meteor 和 MongoDB 的新手,并不是这个项目的原始开发人员,所以我想知道这段代码中是否存在可能导致 100% CPU 使用率和长时间延迟的错误。

4

0 回答 0