1-Linux性能优化


1 | Linux性能优化

性能指标是什么?

学习性能优化的第一步,一定是了解“性能指标”这个概念。

当看到性能指标时,首先想到“ 高并发”和“ 响应快”,而它们也正对应着性能优化的两个核心指标——“吞吐”和“延时”。这两个指标是 从应用负载的视角 来考察性能,直接影响了产品终端的用户体验。跟它们对应的,是 从系统资源的视角 出发的指标,比如资源使用率、饱和度等。

920601da775da08844d231bc2b4c301d

随着应用负载的增加,系统资源的使用也会升高,甚至达到极限。而 性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。

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

  • 选择指标评估应用程序和系统的性能;

  • 为应用程序和系统设置性能目标;

  • 进行性能基准测试;

  • 性能分析定位瓶颈;

  • 优化系统和应用程序;

  • 性能监控和告警。

学习的重点是什么?

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

  • 理解最基本的几个系统知识原理;

  • 掌握必要的性能工具;

  • 通过实际的场景演练,贯穿不同的组件。

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

9ee6c1c5d88b0468af1a3280865a6b7a

(图片来自 brendangregg.com

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

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

性能优化思维导图

0faf56cd9521e665f739b03dd04470ba


文章作者: Merlin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Merlin !
  目录