有了这款 Linux 网络延迟排查方法,再也不用加班了

有了这款 Linux 网络延迟排查方法,再也不用加班了
有了这款 Linux 网络延迟排查方法,再也不用加班了链接:

https://blog.devgenius.io/linux-troubleshoot-network-latency-a6da740f5cb8

在我的上一篇文章中,我向您展示了如何模拟 DDoS 攻击以及如何缓解它。简单回顾一下,DDoS 利用了大量的伪造请求,导致目标服务器消耗大量资源来处理这些无效请求,从而无法正常响应正常用户请求。

在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。

但是需要注意的是,如果 DDoS 流量已经到达 Linux 服务器,那么即使应用层做了各种优化,网络服务延迟一般也会比平时大很多。

因此,在实际应用中,我们通常使用 Linux 服务器,配合专业的流量清洗和网络防火墙设备,来缓解这个问题。

除了 DDoS 导致的网络延迟增加,我想你一定见过很多其他原因导致的网络延迟,例如:

  • 网络传输慢导致的延迟。
  • Linux 内核协议栈数据包处理速度慢导致的延迟。
  • 应用程序数据处理速度慢造成的延迟等。

那么当我们遇到这些原因造成的延误时,我们该怎么办呢?如何定位网络延迟的根本原因?让我们在本文中讨论网络延迟。

Linux 网络延迟

谈到网络延迟(Network Latency),人们通常认为它是指网络数据传输所需的时间。但是,这里的“时间”是指双向流量,即数据从源发送到目的地,然后从目的地地址返回响应的往返时间:RTT(Round-Trip Time)

除了网络延迟之外,另一个常用的指标是应用延迟(Application Latency),它是指应用接收请求并返回响应所需的时间。通常,应用延迟也称为往返延迟,它是网络数据传输时间加上数据处理时间的总和。

通常人们使用 ping 命令来测试网络延迟,ping 是基于 ICMP 协议的,它通过计算 ICMP 发出的响应报文和 ICMP 发出的请求报文之间的时间差来获得往返延迟时间。这个过程不需要特殊的认证,从而经常被很多网络攻击所利用,如,端口扫描工具 nmap、分组工具 hping3 等。

因此,为了避免这些问题,很多网络服务都会禁用 ICMP,这使得我们无法使用 ping 来测试网络服务的可用性和往返延迟。在这种情况下,您可以使用 traceroute 或 hping3 的 TCP 和 UDP 模式来获取网络延迟。

例如:

$ 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 的调用是否正常。

XOps 风向标!GOPS 全球运维大会 2022 · 上海站,AIOps、DevOps、SRE,运维转型,提升自我价值,来 GOPS 看看吧~
有了这款 Linux 网络延迟排查方法,再也不用加班了
长按图片二维码
解锁精彩内容▲
近期好文:

什么是 Kubernetes 中的服务?这篇更精彩

“高效运维”公众号诚邀广大技术人员投稿,
投稿邮箱:jiachen@greatops.net,或添加联系人微信:greatops1118
有了这款 Linux 网络延迟排查方法,再也不用加班了
点个“在看”,一年不宕机

文章来源于网络,投诉文章请联系:zhangyunfei@anqiangkj.com

主题测试文章,只做测试使用。发布者:2915,转转请注明出处:https://community.anqiangkj.com/archives/15237

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年5月10日 下午8:35
下一篇 2022年5月11日 下午12:16

相关推荐