看上去似乎是 HTTP2 多路复用 的问题?
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
嗯嗯,之前我的说法里面没有区分 TCP 连接 和 HTTP 连接,所以很容易误导人。HTTP2 中,请求首行是公共的,之后才有多路复用,即多个请求内容合并到一起。(当然如果以请求首行为界,只会有一个 HTTP2 请求,需要经服务器解包之后,才会衍生出多个请求)
request_time 计算方式是 当前时间 - 接收客户端请求内容的时间
换句话说,request_time 计算的是 当前时间 - 收到 HTTP2 请求时间。如果你所说的请求是指被 HTTP2 协议打包的请求们,request_time 记录的时间跟请求的用时没什么关系。
前面说到的 “同一个连接并不代表从头到尾只有一个请求”,是指同一个 TCP 连接中,可能先后有多个 HTTP2 请求。如果我的想法是对的,应该会出现 request_time 逐渐增大,然后又变成一个较小的值的情况。
在 2017年6月15日 下午2:44,level077 <leve...@gmail.com>写道:
> 换句话说,request_time 此时计量的是整个 HTTP2 请求的用时这里不是很明白。这里的“整个HTTP2请求用时”是指单个流里的请求还是单个HTTP2链接的时间?问题应该是HTTP2多路复用的问题,但是不是很理解。HTTP/1.1时一个连接一个请求,或者一个连接多个请求,但是是顺序的。这时request_time记录的是每个请求的用时。HTTP/2一个连接可以同时发起多个请求,即多个流。这时request_time不是每个请求的了?
在 2017年6月12日星期一 UTC+8上午10:12:48,Zexuan Luo写道:看上去似乎是 HTTP2 多路复用 的问题?
request_time 是从读取 Client 请求的时候开始计时的。
而一个 HTTP2 请求,由于多路复用,可能包含多个实际的请求。
换句话说,request_time 此时计量的是整个 HTTP2 请求的用时,而 upstream_response_time 计量的应该是解包之后,单个 HTTP1 请求花费的时间。
所以二者间才会有这么多的差距。
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
该不会是客户端因为超时断开连接了吧?499 是 Nginx 自定义的状态码,表示客户端已断开连接。
可否计算下,所有并发请求用时加起来,是否跟 request_time 相似?
2017-06-15 16:59 GMT+08:00 level077 <leve...@gmail.com>:
图中的request_time好几个值都是一样也有点奇怪,感觉是和多路复用有关系
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
该不会是客户端因为超时断开连接了吧?499 是 Nginx 自定义的状态码,表示客户端已断开连接。
可否计算下,所有并发请求用时加起来,是否跟 request_time 相似?
2017-06-15 16:59 GMT+08:00 level077 <leve...@gmail.com>:
图中的request_time好几个值都是一样也有点奇怪,感觉是和多路复用有关系
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com