Linux 性能优化实战
倪朋飞
资深 Linux 专家,Kubernetes 项目维护者
87256 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 65 讲
结束语 (1讲)
Linux 性能优化实战
15
15
1.0x
00:00/07:09
登录|注册

开篇词 | 别再让Linux性能问题成为你的绊脚石

讲述:冯永吉大小:3.27M时长:07:09
答疑篇
套路篇
案例篇
基础篇
网络性能
内存性能
磁盘I/O性能
CPU性能
在留言区打卡学习天数
记录经历和分析步骤
自己下笔总结
在留言区找倪朋飞问
自己琢磨
知识脉络理出
重点划分
通俗易懂
综合实战模块
每个模块的划分
资源使用的视角
与倪朋飞一起交付“Linux性能优化”大技能
学习建议
内容风格
5个模块
抓重点学习
带着问题学习
考验综合能力
系统工程的复杂性
一次发布遇到的性能问题
盛大云工作经历
主要负责Kubernetes在Azure的落地实践
Kubernetes项目维护者
云计算老兵
结语
专栏内容
学习性能优化的建议
性能问题的挑战
性能问题的起因
倪朋飞
别再让Linux性能问题成为你的绊脚石

该思维导图由 AI 生成,仅供参考

你好,我是倪朋飞,一个云计算老兵,Kubernetes 项目维护者,主要负责开源容器编排系统 Kubernetes 在 Azure 的落地实践。
一直以来,我都在云计算领域工作。对于服务器性能的关注,可以追溯到我刚参加工作那会儿。为什么那么早就开始探索性能问题呢?其实是源于一次我永远都忘不了的“事故”。
那会儿我在盛大云工作,忙活了大半夜把产品发布上线后,刚刚躺下打算休息,却突然收到大量的告警。匆忙爬起来登录到服务器之后,我发现有一些系统进程的 CPU 使用率高达 100%。
当时我完全是两眼一抹黑,可以说是只能看到症状,却完全不知道该从哪儿下手去排查和解决它。直到最后,我也没能想到好办法,这次发布也成了我心中之痛。
从那之后,我开始到处查看各种相关书籍,从操作系统原理、到 Linux 内核,再到硬件驱动程序等等。可是,学了那么多知识之后,我还是不能很快解决类似的性能问题。
于是,我又通过网络搜索,或者请教公司的技术大拿,学习了大量性能优化的思路和方法,这期间尝试了大量的 Linux 性能工具。在不断的实践和总结后,我终于知道,怎么把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来。
这段学习可以算得上是我的“黑暗”经历了。我想,不仅是我一个人,很多人应该都有过这样的挫折。比如说:
流量高峰期,服务器 CPU 使用率过高报警,你登录 Linux 上去 top 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写的有问题?
系统并没有跑什么吃内存的程序,但是敲完 free 命令之后,却发现系统已经没有什么内存了,那到底是哪里占用了内存?为什么?
一大早就收到 Zabbix 告警,你发现某台存放监控数据的数据库主机的 iowait 较高,这个时候该怎么办?
这些问题或者场景,你肯定或多或少都遇到过。
实际上,性能优化一直都是大多数软件工程师头上的“紧箍咒”,甚至许多工作多年的资深工程师,也无法准确地分析出线上的很多性能问题。
性能问题为什么这么难呢?我觉得主要是因为性能优化是个系统工程,总是牵一发而动全身。它涉及了从程序设计、算法分析、编程语言,再到系统、存储、网络等各种底层基础设施的方方面面。每一个组件都有可能出问题,而且很有可能多个组件同时出问题。
毫无疑问,性能优化是软件系统中最有挑战的工作之一,但是换个角度看,它也是最考验体现你综合能力的工作之一。如果说你能把性能优化的各个关键点吃透,那我可以肯定地说,你已经是一个非常优秀的软件工程师了。
那怎样才能掌握这个技能呢?你可以像我前面说的那样,花大量的时间和精力去钻研,从内功到实战一一苦练。当然,那样可行,但也会走很多弯路,而且可能你啃了很多大块头的书,终于拿下了最难的底层体系,却因为缺乏实战经验,在实际开发工作中仍然没有头绪。
其实,对于我们大多数人来说,最好的学习方式一定是带着问题学习而不是先去啃那几本厚厚的原理书籍,这样很容易把自己的信心压垮。
我认为,学习要会抓重点其实只要你了解少数几个系统组件的基本原理和协作方式,掌握基本的性能指标和工具,学会实际工作中性能优化的常用技巧,你就已经可以准确分析和优化大多数的性能问题了。在这个认知的基础上,再反过来去阅读那些经典的操作系统或者其它图书,你才能事半功倍。
所以,在这个专栏里,我会以案例驱动的思路,给你讲解 Linux 性能的基本指标、工具,以及相应的观测、分析和调优方法。
具体来看,我会分为 5 个模块。前 4 个模块我会从资源使用的视角出发,带你分析各种 Linux 资源可能会碰到的性能问题,包括 CPU 性能磁盘 I/O 性能内存性能以及网络性能。每个模块还由浅入深划分为四个不同的篇章。
基础篇,介绍 Linux 必备的基本原理以及对应的性能指标和性能工具。比如怎么理解平均负载,怎么理解上下文切换,Linux 内存的工作原理等等。
案例篇,这里我会通过模拟案例,帮你分析高手在遇到资源瓶颈时,是如何观测、定位、分析并优化这些性能问题的。
套路篇,在理解了基础,亲身体验了模拟案例之后,我会帮你梳理出排查问题的整体思路,也就是检查性能问题的一般步骤,这样,以后你遇到问题,就可以按照这样的路子来。
答疑篇,我相信在学习完每一个模块之后,你都会有很多的问题,在答疑篇里,我会拿出提问频次较高的问题给你系统解答。
第 5 个综合实战模块,我将为你还原真实的工作场景,手把手带你在“高级战场”中演练,这样你能把前面学到的所有知识融会贯通,并且看完专栏,马上就能用在工作中。
整个专栏,我会把内容尽量写得通俗易懂,并帮你划出重点、理出知识脉络,再通过案例分析和套路总结,让你学得更透、用得更熟。
明天就要正式开课了,开始之前,我要把何炅说过的那句我特别认同的鸡汤送给你,想要得到你就要学会付出,要付出还要坚持;如果你真的觉得很难,那你就放弃,如果你放弃了就不要抱怨。人生就是这样,世界是平衡的,每个人都是通过自己的努力,去决定自己生活的样子。
不为别的,就希望你能和我坚持下去,一直到最后一篇文章。这中间,有想不明白的地方,你要先自己多琢磨几次;还是不懂的,你可以在留言区找我问;有需要总结提炼的知识点,你也要自己多下笔。你还可以写下自己的经历,记录你的分析步骤和思路,我都会及时回复你。
最后,你可以在留言区给自己立个 Flag,哪怕只是在留言区打卡你的学习天数,我相信都是会有效果的。3 个月后,我们一起再来验收。
总之,让我们一起携手,为你交付“Linux 性能优化”这个大技能!
Linux 知识地图 2.0 典藏版,现货发售 2000 份,把 5 米长的图谱装进背包,1 分钟定位 80% 的高频问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Linux性能优化一直是软件工程师头上的“紧箍咒”,但本文作者倪朋飞通过自身经历,分享了对Linux性能问题的深刻思考和解决方法。作者以案例驱动的思路,分为5个模块,从资源使用的视角出发,带领读者分析CPU性能、磁盘I/O性能、内存性能和网络性能等问题。每个模块还划分为基础篇、案例篇、套路篇和答疑篇,帮助读者掌握基本原理、性能指标和工具,学会实际工作中的性能优化技巧。最后,作者还将通过综合实战模块,还原真实的工作场景,手把手带领读者在“高级战场”中演练,让读者能够将所学知识融会贯通,并且能够立即应用于工作中。整个专栏内容通俗易懂,通过案例分析和套路总结,让读者学得更透、用得更熟。作者鼓励读者带着问题学习,并在留言区互动交流,共同努力学习,坚持不懈。通过本文,读者可以快速了解Linux性能优化的基本思路和方法,为提升自身综合能力打下坚实基础。

2018-11-19175人觉得很赞给文章提建议

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Linux 性能优化实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(838)

  • 最新
  • 精选
  • 小盖
    5年前,我还是一名程序员的时候,就经常受到Linux性能问题的困扰。因为生产环境中,一遇到流量高峰,或者不知道其他什么原因,总是会有些问题,比如CPU使用率高,或者内容吃紧或者IO性能上不去等等。 那这个时候怎么办呢?只能上去看看到底是哪里的问题,首先,大部分问题,都会先排除机器或者操作系统层面的问题,因为这些在上线之初基本都已经验证没问题了,并且这种问题,到开发这边,基本就是说是程序的问题了。 比如CPU的,一般就会定位到死锁或者并发代码的问题,那这块怎么分析?我当时其实是不太懂的,只是见厉害的人随便敲一些命令,然后也不知道嘴里念叨着什么,然后过一会,他就说大概是哪里的问题,然后我一看,果然是,然后献出了膝盖。 现在,我开始做教育,就和朋飞(朋飞是非常资深的Linux玩家)一起策划了这个专栏,这个专栏一个是献给和我当年一样懵懂的朋友,也做给现在的自己。 review稿件的时候,我觉得这里我能懂了,也很自豪,因为老师写的浅显易懂,写的通透啊。 ps:这个专栏里,有很多案例,这些案例都非常棒,作者也花了很多精力来做这事。

    作者回复: 感谢郭总支持!

    2018-11-19
    2
    176
  • X
    D1打卡 希望能坚持学完这四个月,然后,我想涨工资😉

    作者回复: 加油!

    2018-11-19
    3
    111
  • shirly
    打卡,盛大云是我第一份工作,曾经还是懵懵懂懂的小姑娘,到今天一边挤奶边充电,满满的苍伤感啊。还是要保持积极学习的状态来影响下一代,可以看出作者花了不少心思在这个专栏下,一定不辜负老同事的付出,好好学习天天天天向上,自勉

    作者回复: 😊

    2018-11-21
    17
  • Carlos
    看到这个专栏,我毫不犹豫的就订上了,希望可以解决我长久以来的疑惑。没有经历过,永远不知道这种问题发生时有多痛苦呀

    作者回复: 学完这个专栏就轻松了

    2018-11-19
    12
  • Q
    看完作者的介绍,感觉很靠谱!我以前也是去啃大部头,但总觉得看得不透,很难和实际工作做结合,而且市面上介绍性能优化这块的书寥寥无几,大多只是谈工具,不谈方法和思路,更不要说结合实际案例去介绍性能优化。我是一名系统工程师,每天都和Linux 系统打交道,给开发提供支持。希望能学好这门综合性质的课程!

    作者回复: 对的,讲工具的书比较多,但还需要串起来才能解决实际的问题

    2018-11-19
    11
  • Cordova
    刚来北京,为了稳住脚立马进了一家团队不大的软件公司,发现来了之后不仅要开发,还要做运维,虽然公司项目日活还不错,但是由于项目有三年以上了,却还是简单依靠nginx做负载,当时就查了cpu,发现mysql占cpu200%-300% 我的天… 立马把mysql执行优化一下算是稳下来了… 后面还做了项目日志的切割,想想一个日志1-3个G的文件流不释放、也挺可怕的… 很幸运碰到倪老师这门课程,虽然已经更新了三十多讲,但是只要能碰到,就已经很幸运了!希望后面能跟随倪老师思路,好好学习,好好进步,好好解决项目的各种问题!也希望能与各位好好交流、共同进步!

    作者回复: 👍

    2019-06-02
    7
  • 吕栋
    如何理清思路?发现问题后该知道下一步该做什么!才是最重要的,希望能得到答案!!!

    作者回复: 这就是专栏要教的

    2018-11-19
    4
  • ninuxer
    打卡Day1,看过作者关于k8s的一些博客,希望能跟上大佬的步伐,从底层开始,夯实基础~

    作者回复: 加油!

    2018-11-19
    3
  • kevenxi
    以前做程序员,从来没有关注过性能问题,一是系统还不太复杂,大不了重启一次;二是似乎大多数身边程序员都不太关注底层问题,索性就一起懵逼了。现在不同了,系统部署,性能优化等技能成了岗位基本要求,linux操作不能止步简单命令+百度了,而要懂系统原理、熟练使用工具,坚持学!

    作者回复: 加油👍

    2019-06-24
    2
  • 深蓝即是黑
    大半夜看第一篇,我还没工作但已经大学毕业三年,喜欢上了运维一直在学习,希望可以通过自己努力找到自己喜欢的运维工作

    作者回复: 加油

    2019-02-27
    2
    2
收起评论
显示
设置
留言
99+
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部