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

25 | 容量场景之二:缓存对性能会有什么样的影响?

你好,我是高楼。
上节课,我们经历了三个阶段的分析优化,分别解决了在压力线程不变的情况下,响应时间随时间增加而增加的问题,还有数据库加索引的问题,以及 Kubernetes 调度不均衡的问题。最后,TPS 曲线看起来挺正常了,但是命运不会因为我努力了就会放过我。
为什么这么说呢?因为在上节课中,我们的场景只持续了十几分钟,对于容量场景来说,时间还是不够长。你知道,压力持续十几分钟,且 TPS 显示正常,并不能说明系统没有问题。
因此,我又对系统进行持续的压力测试,就是在这个过程中,又遇到了新的问题……

第四阶段分析

场景压力数据

这是我在进行持续加压过程中,得到的场景数据:
看上面的曲线图就能知道,这是在压力持续的过程中,出现了 TPS 掉下来的问题,这是不能接受的。

拆分响应时间

针对上述问题,我们先来看一下现在的时间消耗。这是已经运行了一段时间的响应时间图:
我们可以根据整体的平均响应时间,一个个分析这些接口的时间消耗在了哪里。其实,从这张图就能看出,所有的业务时间相比上一节课的响应时间图都增加了。由于所有业务的响应时间都增加了,说明不是某个业务本身的问题,所以,我们任意分析一个接口就可以。
这里我用生成确认订单这个接口做时间拆分。在之前部署系统的时候,我们把 SkyWalking 采样率设置得非常低,只有 5% 左右,目的为了不让 APM 影响性能和网络。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了系统持续压力测试中出现的性能问题,并对问题进行了详细分析和优化。作者首先展示了在持续压力下TPS下降的情况,然后对响应时间进行了拆分分析,发现所有业务的响应时间都增加了。通过全局监控数据发现了CPU资源使用较高的节点,并对该节点进行了详细的监控数据分析。从中得出了系统中断数较高、context switch 达到了3万左右以及syscall消耗的CPU占比较高等问题。文章还介绍了对中断数据、软中断数据和网络队列的分析,以及对接口执行时间和Redis慢查询的跟踪分析。最后,文章还提到了在持续压力测试中出现的新问题,如TPS不稳定和Redis容器异常等情况。通过详细的案例分析和解决方案,为读者提供了解决系统性能问题的实用思路和方法。 在容量场景中,作者解决了多个问题并给出了结论:TPS能达到1700。通过分析压力工具参数化、数据库索引、资源争用、网络争用和Redis的AOF等问题,最终得出了系统整体容量的结论。文章强调了性能优化是无止境的,并提出了课后思考题,引导读者深入思考性能项目的重要性和如何判断系统优化到最优状态。整体而言,本文为读者提供了系统性能问题分析和解决的全面指南,帮助读者更好地理解和解决类似问题。

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

全部留言(8)

  • 最新
  • 精选
  • jy
    问题: 1、“分析了资源争用,解决了多容器跑到一个节点上的问题。”,多篇文中都有移到另外一个work,这只能手动移? 2、“在之前部署系统的时候,我们把 SkyWalking 采样率设置得非常低,只有 5% 左右,目的为了不让 APM 影响性能和网络”,请问下这个在哪设置呢? 3、第四个阶段后,怎么没有核对tps是否复合业务比例? 4、第五个阶段后,怎么没有核对最大容量时tps是否复合业务比例? 谢谢老师

    作者回复: 1, 是的。我这里没有做自动触发。 2. skywaling的配置文件中。 3. 我设置的时候就已经确定了。 4. 同上。

    2021-07-16
    2
    2
  • sky_you
    看到了老师的很多优化思路,我觉得没有多年知识的积累是很难做到这种程度的。解析思路很重要。 同时在实际的项目中,性能工作的展开也没有那么顺利。比如我现在遇到的。开发就不怎么配合,我说代码有问题,提出代码在多线程的情况下要做相关的优化。开发缺不懂我在说什么。可能我技术还不到家,不能直接帮他改代码。结果就导致了问题没有办法解决。

    作者回复: 性能问题的解决一方面靠的是能力;另一方面就是配合了。 对不配合的只能拿职位来压制。😊😊

    2021-06-17
    1
  • Only look at me
    请教一下老师,这个第五阶段的增加线程,我们应该如何判断增加多少线程合适呢?

    作者回复: 这个根据前面的执行数据,看一下tps对应的资源使用率就可以大概计算出来。

    2023-02-03归属地:广东
  • Geek_c1b445
    请问老师: 看截图好像是每个接口按接口统计比例去配置的吗? 前面章节好像说得按照业务配置吗?比如下单业务由登陆、查看商品、支付3个接口组成一个T配置到混合场景吗?

    作者回复: 是的。设置不同级别的T。

    2022-07-09归属地:北京
  • zwm
    网络队列是不是升带宽也可以?

    作者回复: 看情况,是带宽的问题,升带宽才可以。有些不是带宽阻塞的,而是应用阻塞的。

    2022-02-09
  • zwm
    1 没有结论就没有价值。但是有个疑问,我们现在做的性能测试的结论比较多的是两个,1是最大TPS(不看资源) 2是卡响应时间2s看性能情况,这也算是结论吧 2 先解决一个,每次只优化1个点 3 资源使用较高,TPS长期稳定?这个问题不太清楚,,,

    作者回复: 1,给出tps和响应时间也算是结论,这是性能测试项目的结论中必须有的。 而对性能瓶颈来说,这个不算是结论,只是现象。 2. 那必须的。 3. 看趋势图。

    2022-02-09
  • 🏹
    引用“接着,我们登录到 Redis 服务所在的 worker 节点,查看日志:” -------老师这个是看的linux系统的系统日志吗? dmesg | more 是这个吗?

    作者回复: 是的。

    2022-01-31
  • Geek_Gabriel
    上节课,我们经历了三个阶段的分析优化,分别解决了在压力线程不变的情况下,TPS 随时间增加而增加的问题,还有数据库加索引的问题。 这儿的TPS应该是ART吧.上一节中提到了tps下降,art上升的问题。

    作者回复: 对。这里应该是响应时间,手抖了。我修改一下。可以联系我领5元纠错红包。

    2021-07-04
收起评论
大纲
固定大纲
第四阶段分析
场景压力数据
拆分响应时间
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部