使用基本的Sails应用程序可以不间断地增加内存

Mar*_*Zhu 6 node.js sails.js

简而言之,我已经设置了一个带有基本控制器的无前端风帆项目,并使用loadtest命中它,内存不断增加,没有稳定的迹象.我已经读过以前的帖子,并禁用了grunt,session,socket,pubsub等.

建立:

Sails版本:v0.12.3

节点版本:v4.4.7

NPM版本:v2.15.8

复制:

创建新的风帆项目

sails new Project --no-frontend
Run Code Online (Sandbox Code Playgroud)

编辑.sailsrc:

{
  "generators": {
    "modules": {}
  },

  "hooks": {
    "session": false,
    "sockets": false,
    "pubsub": false,
    "grunt": false,
    "i18n": false
  }
}
Run Code Online (Sandbox Code Playgroud)

添加了controllers/TestController.js:

module.exports = {
  hi: function (req, res) {
    return res.send("Hi there!");
  }
};
Run Code Online (Sandbox Code Playgroud)

运行负载测试:

var loadtest = require('loadtest');

var host = 'http://localhost:1337';

var options = {
    url: host + '/test/hi',
    requestsPerSecond: 50
};

loadtest.loadTest(options, function(error, result)
{
    if (error)
    {
        return console.error('Got an error: %s', error);
    }
    console.log('Tests run successfully: '+result);
});
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

火星

rid*_*n88 3

  1. 在负载测试之前、期间和之后进行一些堆转储。
  2. 通过加载堆转储在 Chrome 开发工具中进行检查
  3. 报告泄漏!

https://github.com/bnoordhuis/node-heapdump

另外,您可以尝试每 60 秒强制执行 GC 一次,或者通过设置超时手动执行某些操作,以查看 GC 后内存是否会下降(这意味着没有泄漏)。

节点--expose-gc script.js

然后在 Javascript 中执行以下操作:

setTimeout(function(){
     global.gc();
},60000);
Run Code Online (Sandbox Code Playgroud)