1、hping3测试网络延迟
以 为例,你可以执行下面的 hping3 命令,测试你的机器到百度搜索服务器的网络延迟:
# -c表示发送3次请求,-S表示设置TCP SYN,-p表示端口号为80$ hping3 -c 3 -S -p 80 # 测试80端口延迟$ hping3 -c 3 -S -p 80 192.168.0.30HPING (eth0 123.125.115.110): S set, 40 headers + 0 data byteslen=46 ip=123.125.115.110 ttl=51 id=47908 sport=80 flags=SA seq=0 win=8192 rtt=20.9 mslen=46 ip=123.125.115.110 ttl=51 id=6788 sport=80 flags=SA seq=1 win=8192 rtt=20.9 mslen=46 ip=123.125.115.110 ttl=51 id=37699 sport=80 flags=SA seq=2 win=8192 rtt=20.9 ms--- hping statistic ---3 packets transmitted, 3 packets received, 0% packet lossround-trip min/avg/max = 20.9/20.9/20.9 ms
从 hping3 的结果中,你可以看到,往返延迟 RTT 为 20.9ms。
当然,我们用 traceroute ,也可以得到类似结果:
# --tcp表示使用TCP协议,-p表示端口号,-n表示不对结果中的IP地址执行反向域名解析$ traceroute --tcp -p 80 -n traceroute to (123.125.115.110), 30 hops max, 60 byte packets1 * * *2 * * *3 * * *4 * * *5 * * *6 * * *7 * * *8 * * *9 * * *10 * * *11 * * *12 * * *13 * * *14 123.125.115.110 20.684 ms * 20.798 ms
traceroute 会在路由的每一跳发送三个包,并在收到响应后,输出往返延时。如果无响应或者响应超时(默认 5s),就会输出一个星号。
2、wrk测试端口性能
# 测试80端口性能$ # wrk --latency -c 100 -t 2 --timeout 2 http://192.168.0.30/Running 10s test @ http://192.168.0.30/2 threads and 100 connectionsThread Stats AvgStdevMax +/- StdevLatency9.19ms 12.32ms 319.61ms 97.80%Req/Sec6.20k 426.808.25k 85.50%Latency Distribution50% 7.78ms75% 8.22ms90% 9.14ms99% 50.53ms123558 requests in 10.01s, 100.15MB readRequests/sec: 12340.91Transfer/sec:10.00MB
strace跟踪
$ strace -f wrk --latency -c 100 -t 2 --timeout 2 http://192.168.0.30:8080/...setsockopt(52, SOL_TCP, TCP_NODELAY, [1], 4) = 0...