Linux内核技术实战课
邵亚方
前蘑菇街技术专家,Linux Kernel活跃贡献者
新⼈⾸单¥9.9
2991 人已学习
课程目录
已完结 25 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 如何让Linux内核更好地服务应用程序?
免费
Page Cache管理问题 (5讲)
01 基础篇 | 如何用数据观测Page Cache?
02 基础篇 | Page Cache是怎样产生和释放的?
03 案例篇 | 如何处理Page Cache难以回收产生的load飙高问题?
04 案例篇 | 如何处理Page Cache容易回收引起的业务性能问题?
免费
05 分析篇 | 如何判断问题是否由Page Cache产生的?
内存泄漏问题 (5讲)
06 基础篇 | 进程的哪些内存类型容易引起内存泄漏?
07 案例篇 | 如何预防内存泄漏导致的系统假死?
08 案例篇 | Shmem:进程没有消耗内存,内存哪去了?
09 分析篇 | 如何对内核内存泄漏做些基础的分析?
10 分析篇 | 内存泄漏时,我们该如何一步步找到根因?
TCP重传问题 (6讲)
11 基础篇 | TCP连接的建立和断开受哪些系统配置影响?
12 基础篇 | TCP收发包过程会受哪些配置项影响?
13 案例篇 | TCP拥塞控制是如何导致业务性能抖动的?
14 案例篇 | TCP端到端时延变大,怎样判断是哪里出现了问题?
15 分析篇 | 如何高效地分析TCP重传问题?
16 套路篇 | 如何分析常见的TCP问题?
内核态CPU利用率飙高问题 (4讲)
17 基础篇 | CPU是如何执行任务的?
18 案例篇 | 业务是否需要使用透明大页:水可载舟,亦可覆舟?
19 案例篇 | 网络吞吐高的业务是否需要开启网卡特性呢?
20 分析篇 | 如何分析CPU利用率飙高问题 ?
加餐 (1讲)
加餐 | 我是如何使用tracepoint来分析内核Bug的?
结束语 (2讲)
结束语 | 第一次看内核代码,我也很懵逼
来领奖啦!你填写毕业问卷了吗?
结课测试 (1讲)
结课测试 | 这些Linux内核技术实战技能你都掌握了吗?
Linux内核技术实战课
15
15
1.0x
00:00/00:00
登录|注册

15 分析篇 | 如何高效地分析TCP重传问题?

邵亚方 2020-09-22
你好,我是邵亚方。
我们在基础篇和案例篇里讲了很多问题,比如说 RT 抖动问题、丢包问题、无法建连问题等等。这些问题通常都会伴随着 TCP 重传,所以我们往往也会抓取 TCP 重传信息来辅助我们分析这些问题。
而且 TCP 重传也是一个信号,我们通常会利用这个信号来判断系统是否稳定。比如说,如果一台服务器的 TCP 重传率很高,那这个服务器肯定是存在问题的,需要我们及时采取措施,否则可能会产生更加严重的故障。
但是,TCP 重传率分析并不是一件很容易的事,比如说现在某台服务器的 TCP 重传率很高,那究竟是什么业务在进行 TCP 重传呢?对此,很多人并不懂得如何来分析。所以,在这节课中,我会带你来认识 TCP 重传是怎么回事,以及如何来高效地分析它。

什么是 TCP 重传 ?

我在“开篇词”中举过一个 TCP 重传率的例子,如下图所示:
这是互联网企业普遍都有的 TCP 重传率监控,它是服务器稳定性的一个指标,如果它太高,就像上图中的那些毛刺一样,往往就意味着服务器不稳定了。那 TCP 重传率究竟表示什么呢?
其实 TCP 重传率是通过解析 /proc/net/snmp 这个文件里的指标计算出来的,这个文件里面和 TCP 有关的关键指标如下:
TCP 重传率的计算公式如下:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Linux内核技术实战课》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥9.9
立即订阅
登录 后留言

精选留言(2)

  • 邵亚方 置顶

    课后作业答案:
    - 请问我们提到的 tracepoint 观察方式,或者 tcpretrans 这个工具,可以追踪收到的 TCP 重传包吗?为什么?
    不可以,因为tracepoint是在发送的地方进行打点来追踪的重传包,所以无法追踪收到的重传包。
    2020-10-11
  • 石维康
    『如果你觉得实现内核模块比较麻烦,可以借助 ftrace 框架来使用 Kprobe。Brendan Gregg 实现的tcpretrans采用的就是这种方式,你也可以直接使用它这个工具来追踪 TCP 重传。』

    『。它通过解析该 Tracepoint 实现了对 TCP 重传事件的追踪,而不再使用之前的 Kprobe 方式,』
    2020-09-22
收起评论
2
返回
顶部