我正在使用这样的Hello world示例-
var sys = require("sys"),
my_http = require("http");
my_http.createServer(function(request,response){
response.writeHeader(200, {"Content-Type": "text/plain"});
response.writeHeader(200,{"Connection":"Keep-Alive"});
response.write("Hello World");
response.end();
}).listen(8080);
sys.puts("Server Running on 8080");
在客户端,我使用 ab 如下(总共 100000 个请求使用 5k 个并发连接)
ab -n 100000 -c 5000 http://192.168.0.99:8080/
当我这样做时, netstat -antp | grep 8080 | grep ESTABLISHED |wc -l
我只能得到从 200 到 300 的值。在服务器端,相同的命令只显示 10-20 个并发连接。
首先,为什么两个数字不同?两者不应该一样吗?
其次,为什么我没有看到 1000 个 ESTABLISHED 连接?
服务器端配置 - http://pastebin.com/Cc77YQp7
客户端配置 - http://pastebin.com/4pV16TuD
如您所见,我已将 TIME_WAIT 设置为在 1 秒内到期,并在谷歌搜索后优化了其他参数(增加 ulimit 等),但我找不到这两个问题的根本原因。
事实上,很多时候我apr_socket_recv: Connection timed out (110)
在客户端(在 ab 工具中)遇到错误
客户端在 Ubuntu 12 LTS 上运行,Node.JS 在 Debian 稳定版上运行(喘不过气来)