zoukankan      html  css  js  c++  java
  • curl测试dns解析时间及tcp连接时间

    1、用Linux下的curl命令测量网络请求(分号是分隔符,可以是其他符号):

    curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}  http://www.baidu.com
    
    0.037:0.209:0.210

    -o:表示输出结果到/dev/null,-s表示去除状态信息,-w表示列出后面的参数的结果。

    而且python也有一个pycurl模块;

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

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

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

    关于nscd的说明:https://www.hi-linux.com/posts/9461.html

    3、例子

    [root@bcqf ~]# curl -o /dev/null -s -w time_namelookup:"	"%{time_namelookup}"
    "time_connect:"		"%{time_connect}"
    "time_appconnect:"	"%{time_appconnect}"
    "time_pretransfer:"	"%{time_pretransfer}"
    "time_starttransfer:"	"%{time_starttransfer}"
    "time_total:"		"%{time_total}"
    "time_redirect:"		"%{time_redirect}"
    " https://www.baidu.com
    time_namelookup:    0.004
    time_connect:        0.010
    time_appconnect:    0.068
    time_pretransfer:    0.068
    time_starttransfer:    0.075
    time_total:        0.075
    time_redirect:        0.000
    • DNS解析耗时:0.004s
    • TCP建立连接的耗时:0.010-0.004=0.06s
    • SSL握手完成耗时:0.068-0.010=0.058s,58ms,多了一层SSL还是很耗时的;
    • server处理数据的时间:0.068-0.068=0,0ms,说明服务器处理很快,如果server耗时较高,就需要分析他的耗时:防火墙->负载均衡->应用->缓存和DB,需要深入分析时间消耗在哪个环节;
    • 总体的耗时:0.075s
    • 整个过程没有redirect,所以redirect的耗时为0
  • 相关阅读:
    uva 489 Hangman Judge(水题)
    中国海洋大学第四届朗讯杯高级组 Cash Cow(模拟)
    中国海洋大学第四届朗讯杯高级组 A 2718 Rocky(模拟)
    poj 1039 Pipe(叉乘。。。)
    CodeForces 135 B. Rectangle and Square(判断正方形和 矩形)
    poj 1265 Area( pick 定理 )
    poj 2031 Building a Space Station(prime )
    hdu 4502 吉哥系列故事——临时工计划(dp)
    拉格朗日插值
    [USACO18DEC]The Cow Gathering P
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/10675053.html
Copyright © 2011-2022 走看看