使用http.request时Nodejs的性能如何扩展
How does Nodejs performance scale when using http.request?
我正在编写一个大量使用http.request方法的应用程序。
特别是,我发现同时发送16+~30kb的请求实际上会使512mb RAM机器上的Nodejs实例陷入困境。
我想知道这是否是预期的,或者Nodejs是否只是用于出站请求的错误平台。
是的,这种行为看起来非常合理。
如果它在系统上没有任何明显负载的情况下完成您描述的工作(在这种情况下,需要很长时间),我会更担心。请记住,节点只是一个事件I/O运行时,因此您可以相信它正在尽可能快地调度您的I/O请求,因此它正在最大限度地利用系统,因此系统"真的陷入了困境"。
您应该注意的一件事是http.request不会为每个调用创建一个新的套接字。每个请求都发生在一个名为"代理"的对象上,该对象包含最多5个套接字的池。如果您使用的是v0.6分支,则可以使用来提高此限制。
http.globalAgent.maxSockets = Infinity
试试看它是否有助于
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 扩展移相器按钮类不工作
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- chrome扩展更改主机/域警告
- TableExport jquery插件:文件名和扩展名问题
- 如何在chrome扩展中重定向到html页面
- Chrome扩展没有't在重新加载之前考虑期权价值
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- Javascript”;类“;带有参数的扩展
- 试图阻止Chrome通过扩展关闭
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 从选项页面更新chrome扩展清单权限
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- Javascript 函数,用扩展扩展扩展对象
- (无域)>扩展名::name从何而来
- 无法读取property 'length'vt .扩展;扩展;
- Chrome扩展-扩展点击,新选项卡和重定向