首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

[linux][tcp]使用tcprtt排查网络延迟问题

前言 网络后端业务,经常会遇到延迟抖动的问题。那么问题来了,如何排除出来是网络的问题呢,还是业务的逻辑问题呢,或者是其他的调度问题呢? 分析 SRTT 在TCP的连接中,有一个指标叫做SRTT(smoothed round trip time),关于SRTT的计算方法,可以参考linux/net/ipv4/tcp_probe.c,具体的计算逻辑可以参考代码,以及注释中的论文,不在这里展开(主要是作者看不懂)。 所以,能够dump出来的TCP连接的srtt,生成柱状图观察出来延迟的区间变化,我们就可以知道网络连接的srtt是否抖动。如果业务延迟发生了抖动,srtt很稳定,就可以说明大概率不是网络的问题,可能是业务的问题,或者调度的问题等等; 反之,如果srtt页发生了抖动,那么可以先检查一下网络连接。 和tcp probe的关系 tcp probe是内核提供的debug模块,也可以完成类似的功能,不过在高版本的内核上,已经移除掉了。 从原理上来看,都是基于kprobe原理,hook住tcp_rcv_established函数,来dump出来必要的数据。 但是,在使用性上没有bcc方便。需要说明的是,基于kprobe原理的工具都有overhead,在特别频繁调用到的路径上,需要谨慎使用。 tcprtt使用方法和例子

00
领券