Linux性能优化: 性能指标

721 阅读2分钟

性能分析和性能优化始终是大多数软件工程师的一个痛点,虽然性能问题的复杂性增加了学习的难度,但是,这个并应该成为我们成长中的拦路虎,在我看来,我们对性能问题头疼,原因可能有两个:

 一个是没有找到有效的方法学原理,觉得性能优化太难,自己一定学不会,所以无法深入学下去,故而也不能建立性能的全局观

第二就是性能问题太复杂,不知道从何开始入手分析。

其实,性能问题并没有我们想的那么难,只要我们理解了应用程序和系统的基本原理,建立整体性的全局概念,剩余的性能问题也就一目了然了。

什么是性能指标?

 学习性能优化,首先要了解什么是性能指标,

性能指标,对于每个开发工程师来说,第一反应肯定是”高并发“和”响应快“,这两个指标也正是对应性能优化的两个关键指标”吞吐“和”延时“,这两个指标是从应用负载的角度来考察性能优化的,其结果直接影响到终端产品的用户体验。另外,我们还有从系统资源角度开的指标,比如说CPU使用率、内存等。

随着应用负载的增加,系统资源的使用也会升高。性能的本质就是系统资源达到了瓶颈,导致新的请求过来的时候,没有足够的资源处理。

性能分析的目标,就是要找出应用或者系统的瓶颈,从而想办法避免或者缓解,使系统的资源利用率更高。

想要学好性能分析,需要建立整体的系统性能全局观,同时,也需要掌握必要的性能分析工具。

下面这个是Brendan Gregg所描绘的Linux性能工具图谱:

这个图是Linux性能分析重要的参考资料,从这里面我们可以知道,在Linux不同的子系统出现性能问题后,我们要用什么工具进行分析。

例如,如果是I/O性能问题,那么可以使用iostat、iotop、blktrace等工具分析磁盘I/O瓶颈等,这幅图对于性能优化有很大的参考价值,遇到性能问题后,可以进行参考。