形成认识框架

认识框架(也就是知识大纲)非常重要,宏观上有了理解之后:1)才能有的放矢的深入细节,并能将繁杂多样的细节串联起来;2)在遇到问题的时候,才有能够正确的思考,有头绪、有方法、有步骤的调查问题、解决问题。

下面这张图是最宏观的图片,从上往下是“应用->库->系统调用->内核->设备”,如果发现一个应用的性能特别不理想,可以按照这个顺序查找问题所在,即先查应用、再查依赖库、然后查系统、最后查硬件。

倪鹏飞,极客时间,Linux性能优化 (图片来源:倪鹏飞,极客时间, [《Linux性能优化]》]1 )

Brendan Gregg制作了一份Linux性能工具图谱,这些工具可以用来定位各个方面的问题:

Linux性能工具图谱

近几年比较流行的eBPF也提供了大量工具,eBPF的介绍见《Linux内核功能eBPF入门学习》:

05-bcc_tracing_tools_2017.png

注意上面两张工具图使用的分类方法(图片中间部分),这个分类就是我们要在头脑中形成记忆的认知框架,有了这个认知框架之后,在遇到性能问题的时候才会有清晰、明确的排查思路,不再抓瞎。

倪鹏飞的Linux性能优化专栏中给出的这张思维导图也是一个不错的知识框架,总共有10部分:性能监控性能测试应用程序架构设计Linux内核文件系统CPU内存网络磁盘

Linux性能优化知识框架

参考