我一直在使用httping监控我的负载均衡器的性能。
httping 实用程序接受 -S 参数,该参数在手册页中有简要说明:
-S 将测量的延迟分为连接时间和与 HTTP 服务器交换请求的时间。
输出如下所示:
连接到 [hostname-snip]:80 (284 字节),序列号 = 259,时间 = 0.01+ 21.96+ 23.95+ 0.07+ 0.02= 45.99 毫秒
由此可以清楚地看出,httping 将时间分解为连接/传输/等待(等...)并显示累积输出,但我无法解释每个值的含义。
有人知道这些值各自代表什么含义吗?
答案1
我对此绞尽脑汁。
我在第一个字段中不断获得高值,并认为我在 TCP 连接阶段遇到了问题。
我最终查阅了源代码:
从主程序
2232: char *res_str = t_resolve.cur_valid ? format_value(t_resolve.cur, 6, 2, abbreviate) : strdup(gettext(" n/a"));
2233: char *con_str = t_connect.cur_valid ? format_value(t_connect.cur, 6, 2, abbreviate) : strdup(gettext(" n/a"));
2234: char *wri_str = format_value(t_write.cur, 6, 2, abbreviate);
2235: char *req_str = format_value(t_request.cur, 6, 2, abbreviate);
2236: char *clo_str = format_value(t_close.cur, 6, 2, abbreviate);
2237:
2238: str_add(&line, gettext("time=%s+%s+%s+%s+%s%s=%s%s%s%s ms %s%s%s"), res_str, con_str, wri_str, req_str, clo_str, sep, unsep, ms_color, tot_str, c_white, c_cyan, sc?sc:"", c_white);
这表明httping -S的输出如下:
时间 = [DNS 解析时间] + [TCP 连接时间] + [HTTP 传输时间] + [HTTP 接收时间] + [TCP 关闭时间] = [总时间]