waterline.js是否会缓存该集合,如果它确实通过占用很多内存来炸毁服务器?

问题描述 投票:0回答:1

我们最近在我们的一个系列中交换了130K文件。从那时起,我们面临着更高的nodejs内存消耗问题。我们使用sails waterline.js orm来查询mongodb。因此,通过水线api对数据库进行的任何调用(例如Model.create)都会触发增量,并且节点进程会持续消耗ram直到~1.8GB然后它会爆炸并重新启动。我试图调整过去一周的问题。我找不到任何解决方案。请帮忙。

当我删除所有收集数据时,服务器不显示任何内存消耗。但是,带回130K文档会再次引发问题。

对于前 - 我有一个用户注册端点/user 它会在行中调用以下模型

let user = await User.create(data);
let model2 = await Model2.create(userdata);
let model3 = await Model3.create(model2Data)
let model4 = await Model4.create(data2);

请注意,所有这些模型都没有太多数据。具有130K数据的模型是不同的模型。

我接受了以前和以后的节点vm.screentshot状态的堆转储。在chrome dev工具中检查我发现有很多db数据被加载到内存中(在图像中加下划线。这些数据属于不同的模型/集合,称为估计)但我们的端点/user从不打电话或互动那些模特。所以我想它是水线或其他东西。

node.js mongodb sails.js waterline sails-mongo
1个回答
0
投票

因此,有一个水线映射到用户集合和其他集合,包括具有如此多数据的集合。删除用户和其他集合之间的冗余关联修复了内存泄漏。

© www.soinside.com 2019 - 2024. All rights reserved.