15 分析篇 | 如何高效地分析TCP重传问题?
邵亚方
该思维导图由 AI 生成,仅供参考
你好,我是邵亚方。
我们在基础篇和案例篇里讲了很多问题,比如说 RT 抖动问题、丢包问题、无法建连问题等等。这些问题通常都会伴随着 TCP 重传,所以我们往往也会抓取 TCP 重传信息来辅助我们分析这些问题。
而且 TCP 重传也是一个信号,我们通常会利用这个信号来判断系统是否稳定。比如说,如果一台服务器的 TCP 重传率很高,那这个服务器肯定是存在问题的,需要我们及时采取措施,否则可能会产生更加严重的故障。
但是,TCP 重传率分析并不是一件很容易的事,比如说现在某台服务器的 TCP 重传率很高,那究竟是什么业务在进行 TCP 重传呢?对此,很多人并不懂得如何来分析。所以,在这节课中,我会带你来认识 TCP 重传是怎么回事,以及如何来高效地分析它。
什么是 TCP 重传 ?
这是互联网企业普遍都有的 TCP 重传率监控,它是服务器稳定性的一个指标,如果它太高,就像上图中的那些毛刺一样,往往就意味着服务器不稳定了。那 TCP 重传率究竟表示什么呢?
其实 TCP 重传率是通过解析 /proc/net/snmp 这个文件里的指标计算出来的,这个文件里面和 TCP 有关的关键指标如下:
TCP 重传率的计算公式如下:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何高效地分析TCP重传问题,重点讲解了TCP重传率的计算方法和导致TCP重传的两类情况:丢包和拥塞。作者提出了常规手段,包括使用tcpdump和tshark工具来抓取和过滤TCP重传包。此外,还介绍了使用Kprobe和Tracepoint来追踪TCP重传事件的方法。文章还提到了tcpretrans工具的使用,以及对内核版本的要求。通过清晰的示例和详细的解释,读者可以了解TCP重传的定义、计算方法以及分析手段。对于网络运维人员和系统管理员来说,本文提供了实用的分析方法和工具,帮助他们快速定位和解决TCP重传问题,提高系统稳定性和性能。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Linux 内核技术实战课》,新⼈⾸单¥59
《Linux 内核技术实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(6)
- 最新
- 精选
- 邵亚方置顶课后作业答案: - 请问我们提到的 tracepoint 观察方式,或者 tcpretrans 这个工具,可以追踪收到的 TCP 重传包吗?为什么? 不可以,因为tracepoint是在发送的地方进行打点来追踪的重传包,所以无法追踪收到的重传包。2020-10-1112
- swordholder从本文了解到的ftrace简直打开了新天地。 学习后写了篇ftrace的介绍文章 https://github.com/mz1999/blog/blob/master/docs/ftrace.md
作者回复: 赞👍
2021-06-3010 - 石维康『如果你觉得实现内核模块比较麻烦,可以借助 ftrace 框架来使用 Kprobe。Brendan Gregg 实现的tcpretrans采用的就是这种方式,你也可以直接使用它这个工具来追踪 TCP 重传。』 『。它通过解析该 Tracepoint 实现了对 TCP 重传事件的追踪,而不再使用之前的 Kprobe 方式,』2020-09-222
- 明翼有个问题请教,一次重传,总发包数也会增加,那么重传率为什么可以超过百分之百?2023-05-02归属地:四川
- 逗比最近遇到一个情况,关掉接收方的网卡GRO就没有重传,乱序,重复ack现象,但是不知道为什么 场景:A(虚拟机ip) -> B(虚拟机ip:port), ipvs转发到某一台pod ip,其实就是一个普通的k8s service2022-08-30归属地:北京
- 尼克请问老师,路由变化为什么会导致发送包乱序呢?这段时间生产有个问题,ospf刷新的时候会有很多的重传,但是我不理解为什么路由变化会导致乱序,我理解的seq 不应该是同一个包是一直不变的吗,谢谢2021-01-282
收起评论