【问题标题】:possible node.js memory overuse w/ express server and pm2使用 express 服务器和 pm2 可能会过度使用 node.js 内存
【发布时间】:2015-08-17 02:10:48
【问题描述】:

我正在开发一组为应用/平台协同工作的服务中的一部分。我需要帮助的领域是我们用来提供客户端应用程序(具体来说是一个反应应用程序)的香草快递服务器。我们有许多其他服务在我们的客户端应用程序与之交互和使用的其他节点进程上运行。

目前,它是一个真正轻量级的 express 服务器,它只是使用res.sendfile() 将 html 文件发送到客户端。我们最终将过渡到在服务器上呈现的更加同构(流行语是)的方法。我们使用出色的 pm2 模块来监控和配置服务器上的节点进程,这就是我的主要问题所在。

这是整个服务器最相关的部分:

app.use("/app", express.static(__dirname + '/public'));

app.get('*', function(req, res) {
    res.sendFile(path.join(__dirname + '/index.html'));
});

在堆栈中的这一点之前,我们使用了一些标准的中间件函数。我认为这些与这里无关,但如果有人认为这可能是问题所在,我可以将它们包括在内。

我们使用通配符路由将一些路由职责转移到 react-router,这利用了 html5 历史/位置 API。除了这个基本的路由/响应代码之外,服务器的配置很少。

这似乎非常轻量级,但是当我查看pm2 monit 的结果(显示内存使用情况)时,我看起来每个集群每个请求增加了约 3mb。我不确定这是否是 rss 或堆的安全/可忽略的增加,或者我是否应该担心。似乎它几乎将index.html、app.js 和app.css 缓冲到内存中。

谁能帮我诊断一下?我在看内存泄漏吗?我是否应该在这里考虑内存泄漏?我没有看到任何常见的迹象(随着时间的推移积累记忆而没有互动等)。我想在某种程度上我在这里依赖于 pm2,但它是一个相当知名的模块,它在生产中为不同的人提供了很多操作,所以我还不太怀疑。

以下是响应非常基本的GET 请求的集群示例:

【问题讨论】:

    标签: javascript node.js memory express memory-leaks


    【解决方案1】:

    原来这是由我的newrelic monitor installed w/ npm 引起的。小心第三方工具! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 2019-01-21
      • 2014-02-26
      • 1970-01-01
      • 2012-10-06
      相关资源
      最近更新 更多