
我们知道,业务增长对服务稳定性的要求必定会急剧增加。像 TCP 重传该怎么分析、怎么在运⾏时不打断任务的情况下排查内存泄漏问题、CPU sys 利⽤率⾼怎么办,这些实实在在的问题,不仅难以解决,甚至在定位和排查的环节就会面临诸多挑战。
实际上,应对复杂稳定性问题,除了从业务的视角来看以外,还需要你能够从系统、内核的视⻆来分析。一些业务高手,之所以能直击问题本质,解决别人解决不了的问题,也是因为他们能让内核知识为业务服务。比如,当发生 TCP 重传时,有人可以从 tcpdump 里面的信息看到是哪个 TCP 连接进行重传,然而高手们却可以通过这些信息看到为什么会发生重传。
当然,Linux 内核知识本身就十分庞杂,学习曲线陡峭,对于应用开发者或者运维来说,确实没有必要去搞懂它的每个细节、机制,去理解它所有的设计思想。对于非内核从业者来说,能够让内核知识解决我们生产环境下遇到的实实在在的问题,更好地满足实际需求就够了。
邵亚方深耕 Linux 领域多年,他将通过“解决问题,满足需求”的方式,从生产环境中四类典型问题(Page Cache 管理、内存泄漏、TCP 重传、内核态 CPU 利用率飙高)入手,带你去了解:你的应用程序是怎么跟系统资源打交道的;你的业务类型应该要选择什么样的配置才会更好;出了棘手问题该如何一步步排查等问题,让 Linux 内核更好地服务你的应用程序。
模块介绍
本课程包括 4 大模块,每个模块都会按照基础篇、案例篇和分析篇的方式来呈现。
Page Cache 管理模块,会带你重点分析如何更好地利用 Page Cache 来减少无谓的 I/O 开销,Page Cache 管理不当会引起的一些问题,以及如何去分析和解决这类问题。
内存泄漏模块,会为你重点分析应用程序都是如何从系统中申请内存以及如何释放的。通过内存泄露这类案例来带你了解应用程序使用内存的细节,以及如果内存使用不当会引发的一些问题。当然,也会带你去观察、分析和解决这类问题。
TCP 重传模块,重点分析 TCP 连接的建立、传输以及断开的过程,分析这个过程究竟会受哪些配置项的影响,如果配置不当会引起什么网络问题。然后从 TCP 重传这类具体案例出发,来带你认识你必须要掌握的一些网络细节知识,以及遇到网络相关的问题时,你该如何去分析和解决它。
内核态 CPU 利用率飙高模块,带你分析应用程序该如何高效地使用 CPU,以及哪些情况下会导致 CPU 的使用很低效:比如内核态 CPU 利用率过高就是一个很低效的表现。针对内核态 CPU 利用率高的这个案例,会侧重为你讲解哪些 Linux 内核的特性或者系统配置项会引起这种问题,以及如何分析和解决具体的问题。
开篇词 | 如何让Linux内核更好地服务应用程序? 01 基础篇 | 如何用数据观测Page Cache? 02 基础篇 | Page Cache是怎样产生和释放的? 03 案例篇 | 如何处理Page Cache难以回收产生的load飙高问题? 04 案例篇 | 如何处理Page Cache容易回收引起的业务性能问题? 05 分析篇 | 如何判断问题是否由Page Cache产生的? 06 基础篇 | 进程的哪些内存类型容易引起内存泄漏? 07 案例篇 | 如何预防内存泄漏导致的系统假死? 08 案例篇 | Shmem:进程没有消耗内存,内存哪去了? 09 分析篇 | 如何对内核内存泄漏做些基础的分析? 10 分析篇 | 内存泄漏时,我们该如何一步步找到根因? 11 基础篇 | TCP连接的建立和断开受哪些系统配置影响? 12 基础篇 | TCP收发包过程会受哪些配置项影响? 13 案例篇 | TCP拥塞控制是如何导致业务性能抖动的? 14 案例篇 | TCP端到端时延变大,怎样判断是哪里出现了问题? 15 分析篇 | 如何高效地分析TCP重传问题? 16 套路篇 | 如何分析常见的TCP问题? 17 基础篇 | CPU是如何执行任务的? 18 案例篇 | 业务是否需要使用透明大页:水可载舟,亦可覆舟? 19 案例篇 | 网络吞吐高的业务是否需要开启网卡特性呢? 20 分析篇 | 如何分析CPU利用率飙高问题 ? 加餐 | 我是如何使用tracepoint来分析内核Bug的? 结束语 | 第一次看内核代码,我也很懵逼 来领奖啦!你填写毕业问卷了吗? 毕业问卷获奖用户名单 结课测试 | 这些Linux内核技术实战技能你都掌握了吗?


评论0