我正在开发一组为app / platform工作的服务的一部分。我需要帮助的区域是一个vanilla Express服务器,我们用它来提供我们的客户端应用程序(反应应用程序,具体而言)。我们在客户端应用程序与之交互并消耗的其他节点进程上运行了许多其他服务。
目前,它是一个真正轻量级快速服务器,只需使用res.sendfile()
将html文件发送到客户端。我们最终将转换为在服务器上呈现的更多同构(yay for buzzwords)方法。我们使用梦幻般的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这里,但它是一个相当着名的模块,它为不同的人在生产中获得了很多动作,所以我还不太怀疑。