节点4.1.2上的请求和连接加倍

目前我们正在从节点0.10更新到节点4.1.2,我们正在看到一些奇怪的模式。 我们postgres数据库的连接数量增加了一倍,而且我们看到了与外部服务请求相同的模式2 。 我们正在运行一个运行本地集群API的集群应用程序,并且这两个版本的工作人员数量是相同的。

我不明白为什么升级运行时语言显然会改变应用程序的行为,通过加倍请求到外部服务。

Postgres连接 外部请求

我在0.12和4.x中注意到的一件有趣的事情就是垃圾收集的改变。 我之前没有使用pg模块,所以我不知道它是如何维护它的池,如果它会受到内存或垃圾回收的影响。 如果你还没有定义节点的默认内存设置,你可以尝试一下,看看是否有其他结果。

node --max_old_space_size <some sane value in MB>

我遇到了类似的事情,但我正在得到双文件写入。 我不知道你的具体情况,但是我已经看到了一个场景,请求几乎可以翻倍。

在4.1.2的更新中, process.sendchild.send同步到asynchronous

我发现这样的问题:

 var child = fork('./request.js'); var test = {}; child.send(small request); child.send(large request); child.on('response', function (val) { console.log('small request came back: ' + val); test = val; }); if(!test){ //retry request } ... 

因此,以前阻塞发送已允许此代码工作,非阻塞版本假定发生了错误,并重试。 实际上没有发生任何错误,所以请求翻倍。