01|性能优化流程:刚开始做性能优化从何入手?
徐逸
你好,我是徐逸。
作为研发,在我们的工作中,除了做产品功能需求,有很多时间需要主动做技术需求,而其中比较重要的一项,就是服务性能优化。它关乎着用户体验以及我们可以支撑的业务体量。
然而,很多研发刚开始接触这方面工作时常常无从下手,最常见的痛点有这样几个。
对性能优化的流程不是很清晰。在着手进行优化工作时,往往不知从何处开始,也不清楚该如何定位到性能瓶颈点。
对性能优化的工具不了解。针对瓶颈点,不清楚该用哪个工具,也不知道该如何用工具分析引起性能问题的原因。
对常见的服务优化手段缺乏足够的了解。即便知道了引起性能问题的原因,也不知道可以运用哪些手段才能有效解决,对如何制定优化方案一筹莫展。
所以,这一章我就带你来解决上述的 3 个痛点。而今天这节课,我们先来梳理一下 Go 服务性能优化流程,迈出我们定位和解决性能问题的第一步。
我根据自己实践的经验,把服务性能优化流程分成 5 步。它们分别是定目标、找瓶颈点、分析瓶颈原因、性能优化和验证目标是否达成。
图1 服务性能优化流程图
你可能对每一步的含义不是很了解,没关系,我们后面会逐一解释。首先,在我们陷入性能优化的细节之前,先想一想,你的性能目标是什么?
定目标:你的性能目标是什么?
所谓性能目标,是我们预先设定的一系列期望达成的量化指标。常见的量化指标包括 QPS、延时、数据量等。比如说我们的接口要支持到 100wQPS,平均延时要到 10ms 以内,这就是我们的量化指标。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. 性能优化流程包括定目标、找瓶颈点、瓶颈分析、性能调优和验证目标是否达成。 2. 设定性能目标是为了避免过早过度优化和优化不足,以支持业务发展和提升用户体验。 3. 找瓶颈点需要进行单个请求测试和集群整体压测,以找到可能导致性能问题的组件。 4. 瓶颈分析需要针对服务自身和下游组件分别进行分析,如使用pprof抓取CPU和内存火焰图,或分析MySQL的IO时间和慢查询等。 5. 性能调优针对不同瓶颈原因需要采取不同的优化方案,包括代码优化、框架层优化和架构上的优化。 6. 验证目标达成需要对调优后的应用进行性能测试,与优化前的指标进行对比,直到达成性能目标。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 服务开发高手课》,新⼈⾸单¥59
《Go 服务开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论