Linux性能优化概述
一、Linux性能概述
性能优化是个系统工程,总是牵一发而动全身,它涉及了从程序设计、编程语言,再到系统、存储、网络等各种底层基础设施的方方面面。每一个组件都有可能出问题,而且很有可能多个组件同时出问题。
Linux 性能的基本指标包括 CPU 性能、磁盘 I/O 性能、内存性能以及网络性能等。 系统性能问题,只要理解了应用程序和系统的少数几个基本原理,再进行大量的实战练习,建立起整体性能的全局观并不困难。
性能指标:“高并发”和“响应快”是从应用负载的视角来考察性能,直接影响了产品终端的用户体验。也正对应着性能优化的两个核心指标——“吞吐”和“延时”。
性能分析:随着应用负载的增加,系统资源的使用也会升高,甚至达到极限。性能问题的本质就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。性能分析其实就是找出应用或系统的瓶颈,并设法去避免或者缓解它们,从而更高效地利用系统资源处理更多的请求。
性能分析六个步骤:
(1) 选择指标评估应用程序和系统的性能;
(2)为应用程序和系统设置性能目标;
(3)进行性能基准测试;
(4)性能分析定位瓶颈;
(5)优化系统和应用程序;
(6)性能监控和告警
二、性能优化方法论
动手优化性能之前,需要明确以下三个问题:
1、如何评估性能优化的效果?
确定性能的量化指标、测试优化前的性能指标、测试优化后的性能指标。 量化指标的选择至少要从应用程序 和系统资源这两个维度,分别选择不同的指标:
1)应用程序的维度,我们可以用吞吐量和请求延迟来评估应用程序的性能。
2)系统资源的维度,我们可以用 CPU 使用率来评估系统的 CPU 使用情况。
性能测试注意点:
1)避免性能测试工具干扰应用程序的性能;
2)避免外部环境的变化影响性能指标的评估。
2、多个性能问题同时存在,选择优化哪些?
二八原则,并不是所有的性能问题都值得优化,找出最重要的、可以最大程度提升性能的问题。优先优化系统资源使用问题、性能指标变化幅度最大的问题。
3、多种优化方法,选择哪种?
选能最大提升性能的方法,但性能优化通常会带来复杂度的提升,降低程序的可维护性,还可能引发其他指标的异常。
综合上述,通过应用程序测试分析系统性能瓶颈,通过系统三个方面着手优化操作系统:1)CPU;2)内存;3)磁盘I/O。