之前分享过部分性能优化相关的文章,不过暂不成体系。但是不论你去面试高级工程师,还是架构师,性能优化的问题一定少不了。想彻底解决性能问题,就要全面了解程序设计、算法分析、编程语言、系统、存储、网络等方面知识。
但真正能做到的人少之又少,比如,这些问题估计你也遇到过:
大多数时候,我们只能看到“症状”,却不知道从哪儿下手排查和解决。因为 Linux 性能优化是个系统工程,除了要掌握那些基础知识,还有 2 点特别重要:
1、尝试大量 Linux 性能工具,学习性能优化的思路和方法;
2、不断的实践和总结,通过丰富的踩坑经历,将性能问题和系统原理关联起来,特别是将应用程序、库函数、系统调用、内核和硬件等不同的层级连接起来。
学习要会抓重点,只要你了解几个系统组件的原理和协作方式,掌握基本的性能指标和工具,学习实际工作中性能优化的常用技巧,就可以准确分析和优化大多数的性能问题了。在这个认知的基础上,再阅读那些经典书籍,才能事半功倍。
为你分享一张思维导图,涵盖了大部分性能问题,你可以借此对性能有个全面的认识。
这张图谱出自倪朋飞,他是微软资深工程师,有 10 年云计算工作经验,主要负责开源容器编排系统 Kubernetes 在 Azure 的落地实践。
先别急,看下去,因为这个专栏质量确实不错。
我自己也订阅了他的专栏《Linux 性能优化实战》。大概有 60 讲,讲解了 Linux 性能的基本指标、工具,以及相应的观测、分析和调优方法,用实际案例贯穿了从应用程序到操作系统的各个组件。专栏的整体质量比较高,内容比较硬核,介绍的内容除了针对性能优化之外,对于解决很多Linux下的疑难杂症也非常有帮助,这一点你可以通过试读和浏览目录快速了解到。