http - Node.js 的 http.request 性能如何?它可以处理多少个并发请求?

标签 http concurrency node.js request

我的 node.js 服务器正在使用最新的 (0.4.8) http.request 调用调用另一台服务器。

我使用 jMeter 运行负载测试。每秒 50-100 个并发线程,循环 1000 次。

当脚本继续运行时,我发现速度有所下降。我监控网络吞吐量很低,CPU 和内存也很低。而在另一台服务器上,日志显示他们的响应很快。 (毫秒内)。

但是,我的 node.js 服务器中的 console.log 显示 http.request 响应时间从 200-300 毫秒开始,到 2000-3000 毫秒。

我不确定我可以发出的并发 http.request 是否有限制。

请指教。


经过大量测试,我认为对于 ok 服务器,maxSockets = 1024,http.request 的平均请求速度约为 300-400 次/秒。通常,我看到的速度(连接到不同的网站)约为 80-100 毫秒每个请求。

最佳答案

最大并发连接数应取决于您的硬件。 This article据说node.js可以支持数以万计的并发连接。但是,大多数 linux 系统默认只允许同时打开 1024 个文件/套接字。对于这种情况,您可以以 root 身份运行,然后将 ulimit 设置为一个大数字(例如 100000),然后使用您的硬件运行压力测试以获得准确的并发连接容量。

关于http - Node.js 的 http.request 性能如何?它可以处理多少个并发请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195177/

相关文章:

c++ - 使用 boost::beast 异步处理流式 HTTP

java - 两个方法同时使用@Asynchronous注解

node.js - 当未找到 src 中指定的文件时,不会触发 gulp.src().on ('error' , ()=>{})

javascript - 使用 Node.js 管理文件

javascript - 通过 Dropbox Api V2 上传文件

http - 如何将 cookie 添加到 typescript 和 angular2 中的任何 http.get 请求?

http - 如何在 Rust 中使用媒体文件正确格式化 HTTP 响应

c# - C# 结构线程安全吗?

java - ArrayList.clear 抛出 ArrayIndexOutOfBoundsException

http - Meteor HTTP GET 在 Mongo 循环中崩溃