Go 服务开发高手课
徐逸
头部大厂资深 Go 技术专家、前腾讯资深工程师
92 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 2 讲/共 28 讲
开篇词 (1讲)
第一章 高性能实践 (1讲)
Go 服务开发高手课
15
15
1.0x
00:00/00:00
登录|注册

01|性能优化流程:刚开始做性能优化从何入手?

你好,我是徐逸。
作为研发,在我们的工作中,除了做产品功能需求,有很多时间需要主动做技术需求,而其中比较重要的一项,就是服务性能优化。它关乎着用户体验以及我们可以支撑的业务体量。
然而,很多研发刚开始接触这方面工作时常常无从下手,最常见的痛点有这样几个。
对性能优化的流程不是很清晰。在着手进行优化工作时,往往不知从何处开始,也不清楚该如何定位到性能瓶颈点。
对性能优化的工具不了解。针对瓶颈点,不清楚该用哪个工具,也不知道该如何用工具分析引起性能问题的原因。
对常见的服务优化手段缺乏足够的了解。即便知道了引起性能问题的原因,也不知道可以运用哪些手段才能有效解决,对如何制定优化方案一筹莫展。
所以,这一章我就带你来解决上述的 3 个痛点。而今天这节课,我们先来梳理一下 Go 服务性能优化流程,迈出我们定位和解决性能问题的第一步。
我根据自己实践的经验,把服务性能优化流程分成 5 步。它们分别是定目标、找瓶颈点、分析瓶颈原因、性能优化和验证目标是否达成。
图1 服务性能优化流程图
你可能对每一步的含义不是很了解,没关系,我们后面会逐一解释。首先,在我们陷入性能优化的细节之前,先想一想,你的性能目标是什么?

定目标:你的性能目标是什么?

所谓性能目标,是我们预先设定的一系列期望达成的量化指标。常见的量化指标包括 QPS、延时、数据量等。比如说我们的接口要支持到 100wQPS,平均延时要到 10ms 以内,这就是我们的量化指标。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 性能优化流程包括定目标、找瓶颈点、瓶颈分析、性能调优和验证目标是否达成。 2. 设定性能目标是为了避免过早过度优化和优化不足,以支持业务发展和提升用户体验。 3. 找瓶颈点需要进行单个请求测试和集群整体压测,以找到可能导致性能问题的组件。 4. 瓶颈分析需要针对服务自身和下游组件分别进行分析,如使用pprof抓取CPU和内存火焰图,或分析MySQL的IO时间和慢查询等。 5. 性能调优针对不同瓶颈原因需要采取不同的优化方案,包括代码优化、框架层优化和架构上的优化。 6. 验证目标达成需要对调优后的应用进行性能测试,与优化前的指标进行对比,直到达成性能目标。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 服务开发高手课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部