作为程序员,和 Linux 打交道,在服务器上分析系统性能情况,我觉得是每一个后端工程师都无法避开的事情。
无论你是开发还是运维,可能都经历过这样的场景:
流量高峰期,服务器 CPU 使用率过高报警,你登录 Linux 上去 top 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写得有问题?
一大早就收到 Zabbix 告警,你发现某台存放监控数据的数据库主机 CPU 的 I/O Wait 较高,该怎么办?
说说我的经验吧,
有 3 点我觉得比较重要:
先掌握性能优化的思路和方法,尝试大量 Linux 性能工具;
把性能问题跟系统原理关联起来,特别是把应用程序、库函数、系统调用、内核和硬件等不同的层级贯穿起来;
最终从学习到输出,从实践中总结经验。
这其中,一开始就劝退你的,可能就是 Linux 性能工具的使用,它除了要考虑性能指标的目的外,还要结合待分析的环境来综合选取。
虽说咱有
布伦丹·格雷格(Brendan Gregg)大师整理的性能工具图谱
,相信你也多少参考过,但其实它还不够具体,使用时还要去查找每个工具的手册,对比分析做出选择。
所以每次用的时候,我就在想,有没有更好的方法来理解这些工具呢?刚刚开始研究的时候,可没少在网上找资料,最终解决我问题的,是
倪朋飞《Linux 性能优化实战》
中总结的几个
性能工具图
。
他根据「性能指标」的不同,将工具划分为
CPU、内存、磁盘 I / O及网络
,4 大类型,总算是一次性让我把性能工具搞明白了。
看这些图,就很清晰了,比如,当遇到 I/O 性能问题时,可以根据不同的性能指标,使用 iostat、iotop、blktrace 等工具分析磁盘 I/O 的瓶颈。
之前比较忙,后来我把
《Linux 性能优化实战》
陆陆续续读下来,感觉很多问题豁然开朗,专栏提供了
30 多个 Linux 性能问题的诊断思路
,
真正是让你 10 分钟定位到系统瓶颈
,讲的 Linux 的套路,实实在在的解决了我工作中的实际问题。
毫不夸张的说,这是我看过的
最好的 Linux 教程
,口碑相当不错,已经有超过
3w
人
订阅了。
原价
12
9
,
新
人专享1
9.9 !!
但!
仅限前100个名额
!
再说说倪朋飞,他是微软 Azure 资深工程师,主要负责开源容器编排系统 Kubernetes 在 Azure 的落地实践。
之前先后任职于盛大云和腾讯,在云计算领域有 10 多年的经验,主攻 IaaS 和容器技术,对 Linux 性能优化这套东西,很有些自己的思考和沉淀。
这课
65 讲
,全部更新完了。讲了
Linux 性能的基本指标、工具,以及相应的观测、分析和调优方法
,用实际案例贯穿了从应用程序到操作系统的各个组件,掌握这些,基本上,
你就已经可以准确分析和优化大多数的性能问题了。
除此之外,倪朋飞还整了
5 个综合实战模块
,还原真实的工作场景,结合开源项目、框架或系统设计的案例,手把手带你在“高级战场”演练,让你真正把所学,应用在工作中。
总结来说,就是带你做三件事:
定位问题、掌握性能工具、找到解决之道。
这两年知识付费泛滥,这课算是一股清流了,不仅脉络清晰,而且作者的文字功底相当了得,
真正能把复杂的问题讲明白
(这很不容易),除了内容硬核以外,还有 2 点不得不提:
1、讲解得很成体系
。每一章节都有基础篇、案例篇和套路篇,选的案例比较有针对性,基本都是工作中用得上的,「套路篇」就更别说了,有好几篇我看了 N 遍。
2、倪朋飞不仅会回答大家提出的问题,还会针对那些
有
代表性进行公开答疑
,确
实挺走心。
说真的,光看评论区也能收获不少,自己的认知还是有局限性,有些问题现在没碰到,不等于以后不会出现。
我已经刷了 3 遍,每次刷总有新的收获,专栏已经有
3
W+
订阅了。
有些同学可能觉得,又来恰饭了,但我想说,对于有需要的同学,一个成体系的课程,
好过在网上找
100 篇所谓的干货
,用对方法,看清本质,才能最快找到学习的“捷径”,问题的最优解。