在 Nginx 上运行 bacon(43 字节透明像素)负载测试时,我们尝试了几个keepalive_requests
值(从 10 到 100,000),最佳值似乎是10
。
以下是此小回复的服务器 HTTP 标头:
HTTP/1.1 200 OK
Server: nginx/1.5.6
Date: Wed, 23 Oct 2013 12:39:45 GMT
Content-Type: image/gif
Content-Length: 43
Last-Modified: Mon, 28 Sep 1970 06:00:00 GMT
Connection: keep-alive
keepalive_requests 100000
Nginx使用 比 使用慢两倍keepalive_requests 10
。
你能帮助我们理解这个结果吗?或者告诉我们我们做错了什么?
作为参考,这里是nginx.conf 文件。
答案1
根据上述评论的建议,我搜索了 Nginx 论坛,并找到了相同的问题 “启用 keepalive 会增加请求时间”一个月前发布的消息未获任何答复。
这看起来像是一个错误。必须等待修复。
答案2
我也遇到同样的问题。我用的是 multi_accept,但是我的 benchmark 工具的 -c num 比 nginx 的 keepalive_request 数量要小,而且我同时用 benchmark 工具使用了 -k 参数。所以其中一个 nginx worker 会尽可能多地接受和处理请求。
您可以尝试禁用multi_accept,那么结果可能会更好。