这是我的nginx状态如下:
Active connections: 6119 server accepts handled requests 418584709 418584709 455575794 Reading: 439 Writing: 104 Waiting: 5576
Waiting的价值远高于Reading and Writing,这是否正常?
因为“保持活力”是开放的?
但是,如果我向服务器发送大量的请求,读写的价值不会增加,所以我认为nginx或者任何其他的一定是瓶颈。
Waiting
时间是Active - (Reading + Writing)
,即连接仍然打开等待新的请求,或保活期满。
您可以更改保持活动的默认值(即75秒)
keepalive_timeout 20s;
或者通过在发送给浏览器的头部添加可选的第二超时来告诉浏览器什么时候应该关闭连接
keepalive_timeout 20s 20s;
但是在这个关于keepalive的nginx页面上 ,你会发现有些浏览器并不关心这个头文件(无论如何,你的网站并没有因为这个可选参数而受益匪浅)。
Keepalive是一种减少创建连接的开销的方法,因为大多数情况下,用户将浏览网站等…(加上从单个页面的多个请求,下载CSS , JavaScript , 图像等…)
这取决于你的网站,你可以减少keepalive – 但要记住建立连接是昂贵的。 这是一个权衡,你必须根据网站的统计数据进行细化。 你也可以一点一点地减少超时(75s – > 50,然后一个星期后…),看看服务器的行为。
你并不想修复它,因为“等待”意味着保持连接。 它们几乎不消耗资源(套接字+ nginx中每10000个连接的内存大约为2.5M)。
请求是否短暂? 他们可能正在读/写,然后在短时间内关闭。
如果你真的有兴趣修复它,你可以测试一下nginx是否是瓶颈,你可以在你的nginx配置文件中将keep-alive设置为0:
keepalive_timeout 0;