让我们测试一下我们的质疑:
$ 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
...
可以看到 wrk
只设置了 TCP_NODELAY
选项,没有设置 TCP_QUICKACK
。现在您可以看到为什么延迟 Nginx(案例 Nginx)响应会出现一个延迟。
结论
在本文中,我将向您展示如何分析增加的网络延迟。网络延迟是核心网络性能指标。由于网络传输、网络报文处理等多种因素的影响,网络延迟是不可避免的。但过多的网络延迟会直接影响用户体验。
使用hping3
和 wrk
等工具确认单个请求和并发请求的网络延迟是否正常。
使用 traceroute
,确认路由正确,并查看路由中每个网关跳跃点的延迟。
使用 tcpdump
和 Wireshark
确认网络数据包是否正常收发。
使用 strace
等观察应用程序对网络 socket
的调用是否正常。