Hello!
顺便提一下:建议将讨论总是放在 openresty 邮件组中。
2013/9/8 Huang ChuanTong:
>
> $request_time 能不能进一步分解出来请求读取时间、CGI处理时间、输出时间? 或是ngx中已有变量可知晓?
>
你所谓的“CGI 处理时间”可以通过 $upstream_response_time 变量获取:
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#variables
至于请求读取时间和输出时间,分别获取貌似没有现成的 nginx 变量,但二者之和可以通过 $request_time -
$upstream_response_time 来取得。
更细粒度的请求延时的实时统计分析,建议基于 systemtap 或者 dtrace 这样的动态追踪工具来实现。可以参考我的 Nginx
Systemtap Toolkit
里面现有的那些工具:https://github.com/agentzh/nginx-systemtap-toolkit
Regards,
-agentzh
2013/9/8 Huang ChuanTong <chuanto...@gmail.com>:
>
> $request_time 能不能进一步分解出来请求读取时间、CGI处理时间、输出时间? 或是ngx中已有变量可知晓?
>
>
> On Wednesday, July 31, 2013 2:54:37 AM UTC+8, agentzh wrote:
>>
>> Hello!
>>
>> 2013/7/30 keqiang ye:
>> > nginx的$request_time 比 $upstream_response_time 的时间长很多,目前一个就是$request_time
>> > "9.913" $upstream_response_time 0.035
>> > 。是否nginx本身处理这个请求花费了差不多9S的时间,因此想定位到底是nginx的哪一块处理的时间长。
>>
>> 当 $request_time 远长于 $upstream_response_time 的时候,一般意味着 nginx
>> 花费了更多时间读取请求以及输出响应,换句话说,遇到了慢速客户端(比如很差的 wifi
>> 网络中的用户或者慢连接攻击者或者耗时的大数据上传或大数据下载)。
>>
>> > nginx-systemtap-toolkit
>> > 工具集里面哪个工具能分析出耗时长的原因?
>>
>> Nginx Systemtap Toolkit 中目前没有现成的工具分析 nginx
>> 单纯读取请求和单纯输出响应的延时,不过这样的工具是很容易基于 systemtap 来编写的。欢迎贡献补丁 :)
>>
>> Regards,
>> -agentzh