高楼的性能工程实战课
高楼
盾山科技 CEO,7DGroup 创始人
19172 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 35 讲
特别放送 (1讲)
结课测试 (1讲)
结束语 (1讲)
高楼的性能工程实战课
15
15
1.0x
00:00/00:00
登录|注册

21 | 支付前查询订单列表:如何分析优化一个固定的技术组件?

今天我们来分析支付前查询订单列表接口。
在这节课中,我将带你来看一下对于一个固定的技术组件,分析优化思路应该是怎样的,也就是说组件不是我们开发的,但是又要分析优化它,我们该怎么办?
此外,我们还会遇到一个问题,就是当数据库的 CPU 并没有全部用完,而是只用了几颗的时候,我们应该如何具体定向?对此,我们将用到查看数据库本身线程栈的方法,这和前面直接看 trx 表有所不同。
下面,我们一起进入今天的内容。

场景运行数据

对于支付前查询订单列表接口,我们先来看第一次运行的性能场景结果:
从运行的场景数据来看,这个接口的 TPS 一开始还是挺高的,达到了 800 多。但是,响应时间也增加了,瓶颈已经出现。我们只要知道瓶颈在哪,就能知道这个接口有没有优化空间。
根据高老师的分析逻辑,在正式分析之前,我们看一下架构图。

架构图

这张架构图是非常清楚的,可以看到,当前接口的逻辑为:Gateway - Order - Member,其中也使用到了 MySQL 和 Redis。
下面我们来看看,响应时间消耗到哪里去了。

拆分响应时间

Gateway:
Order:
Member:
从响应时间的分布来看,Gateway(网关)上消耗的时间要长一些。所以,我们接下来得从 Gateway 下手,分析一下到底是哪里消耗了时间。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了如何分析和优化一个固定的技术组件,以支付前查询订单列表接口为例进行了详细分析。首先从性能场景数据入手,发现接口的TPS较高但响应时间也在增加,存在瓶颈。通过架构图和响应时间分布的拆分,确定了Gateway上消耗时间较长,因此进行全局监控和定向监控分析,发现Gateway服务在worker-4上,线程CPU消耗正常,但仍对线程进行调整以提高CPU利用率。优化效果显示TPS有所增加。然后转入第二阶段分析,重新从全局监控开始,发现数据库中有两个CPU的使用率异常高,进一步进行定向分析。文章强调了在性能项目中不轻易给出加CPU的建议,而是要在分析了逻辑之后确定没有其他优化空间再给出这样的建议。整体内容详实,涵盖了性能优化的多个方面,对读者进行了深入的技术指导。文章内容丰富,通过实例详细介绍了性能优化的方法和思路,对于需要进行性能优化的技术人员具有一定的指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高楼的性能工程实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • Alisa
    1.因为一个全局监控方法可能不能包含所有性能计数器,要知道自己想看什么计数器,知道计数器可以通过哪些工具来查看,使用全部是为了不漏点存在问题的任何可能性 2.单cpu高,可以先查看cpu在跑哪些线程,找到对应高效耗线程,然后再去使用工具查看这些线程在干什么,从而定位问题

    作者回复: 总结正确。不错。

    2021-06-02
    3
  • alley
    老师,我看到一句话,说一切性能问题,都能通过jstack pid找到线索

    作者回复: 那要看是不是和代码有关的问题喽。 jstack是查看栈信息的,也就是代码的执行逻辑。

    2021-05-07
    3
    1
  • 冒冒
    还有一个问题想问下,高老师,在压测过程中,一个服务启了多少个pod?

    作者回复: 这是不固定的呀,取决于业务容量的要求。

    2022-01-21
  • 冒冒
    预热 该怎么做?

    作者回复: 就是先跑一遍场景。

    2022-01-21
  • 天若有情
    在容器上的服务,会因为lxcfs的计算方式,导致看到的应用使用的cpu不均衡的情况嘛? 比如申请的容器是4c8g的,宿主机是24核的,top命名看到应用用的4核很不均衡,只是其中的一个核是满的,其他都很空闲。

    作者回复: 这个说法和实际看到的好像有点不符哦。

    2022-01-13
    2
  • 道长
    1、也可能存在关联系统影响导致性能差; 2、CPU使用率高,也可以使用perf抓去调用函数

    作者回复: 1,在性能分析中没有“可能”。其实这个问题要问的是一个思路,而不是原因。 2. 也同样是问思路。不过cpu使用率,应该先看是哪个计数器,再确定后续的思路,而不是直接用perf去看系统调用。

    2021-05-12
收起评论
大纲
固定大纲
场景运行数据
架构图
拆分响应时间
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部