在使用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
试试看看是否有帮助