其实,不论你是高级工程师,还是架构师,性能优化的问题都少不了。想彻底解决,就要全面了解程序设计、算法分析、编程语言、系统、存储、网络等知识,但能做到的人少之又少,比如: 
  • 流量高峰期,服务器 CPU 使用率过高报警,是系统 CPU 资源太少,还是程序并发写得有问题?

  • 系统没有跑吃内存的程序,但敲完 free 命令后发现没内存了,到底被什么占用了?

  • 一大早收到 Zabbix 告警,发现某台存放监控数据的数据库主机 CPU 的 I/O Wait 较高,要怎么处理?

 大多数时候,我们只能看到“症状”,却不知从哪儿下手排查和解决。因为 Linux 性能优化是个系统工程,涉及从程序设计、算法分析、编程语言,再到系统、存储、网络等底层基础设施的方方面面。每个组件都可能出问题,而且很有可能多个组件同时出问题。 所以,性能优化是软件系统中最有挑战的工作,非常考验综合能力。这么说吧,如果能把性能优化的各个关键点吃透,你已经是个非常厉害的软件工程师了。 但话说回来,只要你了解少数几个系统组件的基本原理和协作方式,掌握基本性能指标和工具,和常用的性能优化技巧,已经可以分析和优化大多数性能问题了。在这个基础上,再去读那些经典操作系统图书,才能事半功倍。 我认为,学习要掌握正确的方法。对大多数人来说,最好的学习方式一定是带着问题、有重点地学习。这里,分享给你一张 Linux 性能优化图谱,涵盖了大部分性能问题,可以帮你建立对系统性能的全面认知。