Linux性能优化之(2)如何学习性能优化

其实,性能问题并没有你想象得那么难,只要你理解了应用程序和系统的几个基本原理,再进行大量的实战练习,建立起整体性能的全局观,大多数性能问题的优化就会水到渠成。

性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。

性能分析,其实就是找出应用或系统的瓶颈,并设法去避免或缓解它们,从而更高效地利用系统资源处理更多的请求。这包含了一系列的步骤,比如下面的这些步骤:

  • 选择指标评估应用程序和系统的性能。
  • 为应用程序和系统设置性能指标
  • 进行性能基准测试
  • 性能分析定位瓶颈
  • 优化系统和应用程序
  • 性能监控和告警

学习的重点是什么?

  想要学习好性能分析和优化,建立整体系统性能的全局观是最核心的话题。因而:

  • 理解最基本的几个系统知识原理
  • 掌握必要的性能工具
  • 通过实际的场景演练,贯穿不同的组件

 

在这里,不得不提到性能领域的大师布伦丹格雷格(Brendan Gregg),他不仅是动态追踪工具DTrace的作者,还开发了许许多多的性能工具。我相信你一定见过他所描述的Linux性能工具图谱

 

 

 这个图是Linux性能分析最重要的参考资料之一,它告诉你,在Linux不同子系统出现性能问题后,应该用什么样的工具来观测和分析。

比如,当遇到 I/O 性能问题时,可以参考图片最下方的I/O子系统,使用iostat、iotop、blktrace等工具分析磁盘I/O的瓶颈,

另外,特别要强调一点,就是性能工具的使用。有句话是这么说的,一个正确的选择胜过千百次的努力。虽然夸张些,但是选用合适的性能工具,确实可以大大简化整个性能优化过程。

但是切记,千万不要把性能工具当成学习的全部。工具只是解决问题的手段,关键在于你的用法。只有真正理解了它们背后的原理,并且结合具体场景,融会贯通系统的不同组件,你才能真正掌握它们。

最后,为了对性能有个全面认知,提供如下一张思维导图:

 

怎样学更高效?

  1. 虽然系统的原理很重要,但在刚开始一定不要试图抓住所有的实现细节。
  2. 边学边实践,通过大量的案例演练掌握Linux性能的分析和优化
  3. 勤思考,多反思,善总结,多问为什么
posted @ 2020-09-27 16:31  故地重游2020  阅读(136)  评论(0编辑  收藏  举报