使用http.request时Nodejs的性能如何扩展

How does Nodejs performance scale when using http.request?

本文关键字:何扩展 扩展 性能 request http Nodejs 使用      更新时间:2023-09-26

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

特别是,我发现同时发送16+~30kb的请求实际上会使512mb RAM机器上的Nodejs实例陷入困境。

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

是的,这种行为看起来非常合理。

如果它在系统上没有任何明显负载的情况下完成您描述的工作(在这种情况下,需要很长时间),我会更担心。请记住,节点只是一个事件I/O运行时,因此您可以相信它正在尽可能快地调度您的I/O请求,因此它正在最大限度地利用系统,因此系统"真的陷入了困境"。

您应该注意的一件事是http.request不会为每个调用创建一个新的套接字。每个请求都发生在一个名为"代理"的对象上,该对象包含最多5个套接字的池。如果您使用的是v0.6分支,则可以使用来提高此限制。

http.globalAgent.maxSockets = Infinity

试试看它是否有助于