这是我的nginx状态:
Active connections: 6119
server accepts handled requests
418584709 418584709 455575794
Reading: 439 Writing: 104 Waiting: 5576
等待的价值远高于阅读和写作,这是正常的吗?
因为'keep-alive'是开放的吗?
但是如果我向服务器发送了大量请求,那么读取和写入的值就不会增加,所以我认为必须存在nginx或其他任何一个瓶颈。
答案 0 :(得分:2)
Waiting
时间为Active - (Reading + Writing)
,即连接仍然打开,等待新请求或保持活动过期。
您可以更改keepalive默认值(即75秒)
keepalive_timeout 20s;
或通过在发送到浏览器的标头中添加可选的第二个超时来告诉浏览器何时应关闭连接
keepalive_timeout 20s 20s;
但是在this nginx page关于keepalive,你会发现某些浏览器并不关心标题(无论如何,由于这个可选参数,你的网站不会获得太多收益)。
keepalive是一种减少创建连接开销的方法,因为在大多数情况下,用户将浏览网站等...(加上来自单个页面的多个请求,下载 css , javascript ,图片等...)
这取决于您的网站,您可以减少保持活动 - 但请记住,建立连接是昂贵的。这是一个权衡,您必须根据站点统计信息进行优化。你也可以一点一点地减少超时(75s - > 50,然后一周后30 ......)并看看服务器的行为方式。
答案 1 :(得分:0)
你真的不想解决它,因为“等待”意味着保持活力 连接。他们几乎没有资源消耗(套接字+约 在nginx中每10000个连接有2.5M的内存。
请求是否短暂?他们可能会在很短的时间内阅读/写作然后结束。
如果你真的有兴趣修复它,你可以测试nginx是否是瓶颈你可以在你的nginx配置中将keep-alive设置为0:
keepalive_timeout 0;