Linux内核技术实战课

Linux内核技术实战课 / 从内核层面攻克应用程序难题

邵亚方 前蘑菇街技术专家,Linux Kernel活跃贡献者
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词 | 如何让Linux内核更好地服务应用程序?

    从系统资源的维度,我们需要关注的问题可以分为四类,分别是磁盘I/O、内存、网络I/O、CPU。

  • 01 基础篇 | 如何用数据观测Page Cache?

    认识Page Cache最简单的方式,就是用数据说话,通过具体的数据你会更加深入地理解Page Cache的本质。

  • 02 基础篇 | Page Cache是怎样产生和释放的?

    对Page Cache的What-Why-How都有所了解之后,你才会对它引发的问题更加了然于胸,从而防范于未然。

  • 03 案例篇 | 如何处理Page Cache难以回收产生的load飙高问题?

    问题看似很简单,但如果对问题产生的原因理解的不深,解决起来就会很棘手,甚至配置的不好,还会带来负面的影响。

  • 在线阅读:04 案例篇 | 如何处理Page Cache容易回收引起的业务性能问题?

    这类问题因为不直观所以陷阱会很多,应用开发者和运维人员更容易踩坑,他们往往是一再中招之后,才搞清楚问题到底是怎么回事。

  • 05 分析篇 | 如何判断问题是否由Page Cache产生的?

    如果我们没有判断清楚问题是如何引起的而贸然采取措施,非但无法解决问题,反而会引起其他负面影响。

  • 06 基础篇 | 进程的哪些内存类型容易引起内存泄漏?

    查看进程内存时,可以先使用top来看系统中各个进程的内存使用概况,再使用pmap去观察某个进程的内存细节。

  • 07 案例篇 | 如何预防内存泄漏导致的系统假死?

    有些内存泄漏你需要格外重视,比如长期运行的后台进程的内存泄漏,这种泄漏日积月累,会逐渐耗光系统内存,甚至会引起系统假死。

  • 08 案例篇 | Shmem:进程没有消耗内存,内存哪去了?

    有的内存泄漏很难观察,因为它们无法通过观察进程消耗的内存来进行判断,从而容易被忽视。

  • 09 分析篇 | 如何对内核内存泄漏做些基础的分析?

    对于应用开发者或者运维人员而言,掌握基本的内核内存泄漏分析方法也是必需的。

  • 10 分析篇 | 内存泄漏时,我们该如何一步步找到根因?

    我们掌握了这些通用分析技巧,很多时候就可以以不变来应万变了。

  • 11 基础篇 | TCP连接的建立和断开受哪些系统配置影响?

    要想让业务行为符合预期,你需要了解Linux的相关网络配置,让这些配置更加适用于你的业务。

  • 12 基础篇 | TCP收发包过程会受哪些配置项影响?

    这个过程中涉及到很多的配置项,我们遇到的很多问题都是这些配置项跟业务场景不匹配导致的。

  • 13 案例篇 | TCP拥塞控制是如何导致业务性能抖动的?

    TCP拥塞控制是TCP协议的核心,也是一个非常复杂的过程。如果你不了解TCP拥塞控制,那么就相当于不理解TCP协议。

  • 14 案例篇 | TCP端到端时延变大,怎样判断是哪里出现了问题?

    这些实践并不仅仅适用于这种C/S架构,对于其他应用程序,特别是对延迟比较敏感的应用程序,同样具备参考意义。

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

    TCP重传率分析并不是一件很容易的事,比如现在某台服务器的TCP重传率很高,那究竟是什么业务在进行TCP重传呢?

  • 16 套路篇 | 如何分析常见的TCP问题?

    要分析各种各样的网络问题,你必须掌握一些分析手段,这样在出现问题的时候,你就可以高效地找到原因。

  • 17 基础篇 | CPU是如何执行任务的?

    CPU的存储层次对大型软件系统的性能影响会很明显,也是你在性能调优时需要着重考虑的

  • 18 案例篇 | 业务是否需要使用透明大页:水可载舟,亦可覆舟?

    我们基于大页给业务做性能优化时,首先要评估业务的数据局部性,尽量把业务的热点数据聚合在一起,以便于充分享受大页的优势。

  • 19 案例篇 | 网络吞吐高的业务是否需要开启网卡特性呢?

    硬中断、软中断以及ksoftirqd,它们与用户线程之间的关系是相对容易引发业务抖动的地方,你需要掌握它们的观测方式。

  • 20 分析篇 | 如何分析CPU利用率飙高问题 ?

    要想拓展分析问题的边界,你首先需要知道该怎么去分析应用程序使用的系统调用函数。

  • 加餐 | 我是如何使用tracepoint来分析内核Bug的?

    内核开发者只有在新版本的内核里做开发,才会有更多的发挥空间。

  • 结束语 | 第一次看内核代码,我也很懵逼

    对于Linux的学习者而言,从0到1真的是最简单的一步,往后的每一步会越来越难。

  • 来领奖啦!你填写毕业问卷了吗?

    2分钟填写问卷,就有机会免费学课程!

  • 毕业问卷获奖用户名单

    来看看你中奖了吗?

  • 结课测试 | 这些Linux内核技术实战技能你都掌握了吗?

    《Linux内核技术实战课》结课了,来做一下结课测试吧!

26讲

你将获得

  • 掌握 Linux 底层基础知识
  • 疑难问题的排查定位方法
  • 4 类稳定性问题案例分析
  • Linux 内核专家的应用实战经验

讲师介绍


课程介绍

当然,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内核的特性或者系统配置项会引起这种问题,以及如何分析和解决具体的问题。


课程目录


特别放送

免费领取福利



限时活动推荐


订阅须知

随机推荐

和府捞面浓汤鲜煮面4袋速食面番茄牛肉面条评测好不好用?最真实...

和府捞面浓汤鲜煮面4袋速食面番茄牛肉面条评测怎么样?新手小白...

朗适RS100选购哪种好?性能评测实际情况?

狮王小狮王儿童氟防蛀牙膏 20g用户评价如何?使用两个月评测反馈...

卡诗元气姜粉瓶生姜洗发水250ml反馈怎么样?评测教你怎么选?

蒙牛纯甄草莓果粒常温酸奶200g×10实用性高,购买推荐吗?购买前...