如何学习性能优化呢?性能优化的复杂度增加了学习难度,常见的性能优化学习包含了对系统底层只是的理解,难以深入,难以学习

而且一般程序出问题,就是直接上网查询,直接囫囵吞枣的试几次,成功了也不深究进去了,所以,相同的错误重复的犯,相同的状况重复出现

但是新能问题实际上没有那么难,只需要理解应用程序和系统几个基本原理,加上实战的联系,就可以建立起整体性能的大局观

即不需要理解每个组件的实现细节,只要能理解基本的工作原理和协作方式就可以了

那么性能指标是什么?

性能指标从应用负载的视角来看,是高并发和响应快,对应的就是吞吐和延迟

系统资源的角度来看,就是资源使用率和饱和度,

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

性能分析,就是找到应用或者系统的瓶颈,设法避免或者缓解这个尴尬的局面

我们将性能分析的步骤总结位如下六步

1.选择指标来评估程序和系统的性能

2.应用程序和系统设置性能目标

3.性能基准测试

4.性能分析定位瓶颈

5.优化系统和应用程序

6.性能监控和告警

其次,对于性能分析和优化,我们需要建立整体系统性能的全局观

对此我们需要理解几个系统知识原理

掌握必要的性能工具

利用实际的场景演练,贯穿不同的组件

对应的性能工具的图谱,基本如下

Linux不同子系统出现问题后,使用什么工具来测试,都在上图上标记了下

比如IO系统中,我们可以使用iostat iotop blktrace等工具来分析IO瓶颈

性能工具的选择非常重要,甚至选择对了,可以大大的简化整个性能的优化过程

但是性能工具不是学习的全部,工具只是解决问题的手段,关键在于其用法

只有真正理解了背后原理,结合实际的场景,融汇贯通系统中的不同组件,才能实际的掌握

实际上,我们对于不同组件的性能测试的学习,基本如下图

最后,两个建议

系统原理很重要,但是不要太过于深入,因为深入到系统内部实现,可能会丢掉学习的重点,复杂的实现逻辑,可能会打击自己的积极性

然后多反思,多总结

发表评论

邮箱地址不会被公开。 必填项已用*标注