用curl排查DNS解析响应等时间

排查:fail to connect to {ip} cannot assign requested address

经查遇到需要测量网络请求时间问题,包括DNS解析、连接、传输等时间。

Linux下的curl命令可以很好的测量网络请求,如下

curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} 
 http://www.jd.com

-o表示输出结果到 /dev/null(避免返回数据淹没了时间信息)

-s表示去除状态信息

-w表示列出后面的参数的结果

curl命令支持的参数,有如下

time_connect        建立到服务器的 TCP 连接所用的时间
time_starttransfer  在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
time_total          完成请求所用的时间
time_namelookup     DNS解析时间,从请求开始到DNS解析完毕所用时间(记得关掉 Linux 的 nscd 的服务测试)
speed_download      下载速度,单位-字节每秒。

通过该命令,可以计算网络请求中DNS解析、连接、传输及总的时间,进行初步的故障排查。

例如:

time curl -o /dev/null -s -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redirect}:%{time_pretransfer}:%{time_connect}:%{time_starttransfer}:%{time_total}:%{speed_download} -d '<?xml version="1.0" encoding="GBK" ?><Cell_Req ver="1.0"><HDR version="1.0" cdma="0" gps="" glong="" glat="" precision=""><src>yun_droid_mapsdk</src><license>KBIH8I09CJK09BN89HILIBHKKXZV8OU</license><imei>111339641496121.6635</imei ></HDR><DRR phnum="" nettype="" inftype="2"><mcc></mcc><mnc></mnc><lac></lac><cellid></cellid><signal></signal><nb></nb><mmac>c0:83:0a:55:1d:91,-65*</mmac><macs>c0:83:0a:55:1d:91,-65*8c:10:d4:e7:91:c6,-76*58:20:b1:55:9c:5d,-74*40:65:a3:63:a2:ee,-74*</macs></DRR></Cell_Req>' http://{ip}/APS/r

 

200:000:text/xml;charset=GBK:0.005198:0.000000:0.129652:0.129178:0.242116:0.242243:1011.000

real 0m0.255s

user 0m0.006s

sys 0m0.006s

47.88.132.64

相关推荐