在使用http.request时,Nodejs性能如何扩展?

我正在编写一个大量使用http.request方法的应用程序。

特别是,我发现同时发送16+〜30kb的请求, 真的让一个512MB RAM机器上的一个Nodejs实例陷入困境。

我想知道这是否是预期的,或者如果Nodejs只是出站请求的错误平台。

是的,这种行为似乎是完全合理的。

我会更关心的是,如果是在你所描述的工作中没有任何明显的系统负载(在这种情况下将需要很长的时间)。 请记住,节点只是一个平衡的I / O运行时间,所以你可以相信,它正在调度你的I / O请求(约)与底层系统一样快,因此它正在使用系统(几乎)最大的潜力,因此系统“真正陷入泥潭”。

有一件事你应该知道的事实是,http.request不会为每个调用创build一个新的套接字。 每个请求都发生在一个名为“agent”的对象上,该对象包含一个最多5个套接字的池。 如果你正在使用v0.6分支,那么你可以通过使用这个限制。

http.globalAgent.maxSockets = Infinity 

试试看看是否有帮助