性能测试实战 30 讲
高楼
前 HP 高级性能专家,7DGroup 创始人
45941 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 37 讲
性能测试实战 30 讲
15
15
1.0x
00:00/00:00
登录|注册

30丨案例:为什么参数化数据会导致TPS突然下降?

接着分析DB
陷入困局
查DB
查应用
查操作系统
性能瓶颈
TPS下降
参数化数据获取逻辑
数据不均衡
数据分布不均衡的影响
抓包判断响应时间拆分
排查手册
全局监控
经验与累赘
性能问题分析
分析过程
TPS数据异常
影响
问题
问题
总结
案例问题描述
性能测试参数化数据
性能测试参数化数据问题分析

该思维导图由 AI 生成,仅供参考

写这篇文章的时候,我想起来一句似乎无关紧要的话:“我离你如此之近,你却对我视而不见。”
在性能测试中,参数化数据是少有的每个性能测试工程师都会用得到,却经常出现问题的技术点之一。从我的角度来说,究其原因,大部分是因为对性能参数化数据的理解不足。导致的结果就是用了参数化,但和真实的用户场景不一致,从而使得整个性能测试场景都失去了意义。
这样的例子不在少数。
一个项目开始之初,由于没有历史沉淀的数据,所以我们需要造一些数据来做性能测试。造多少呢?并不是按未来生产的容量来造,而是按性能场景中需要的数据量级来造。这种错误的做法是很多项目中真实出现的事情。
这并不止是性能测试工程师之过,还有很多其他的复杂原因,比如时间不够;经验不足,只能造重复的数据等等。
那么性能测试参数化数据的获取逻辑到底是什么呢?我们来看一个图吧。
在这个图中,我用不同的颜色表示不同组件中的数据。压力工具中的参数化数据有两种,这一点,我们前面有提到过,参数化数据有两大类型:
用户输入的数据同时在后台数据库中已存在。
用户输入的数据同时在后台数据库中不存在。
当我们使用数据库中已存在的数据时,就必须考虑到这个数据是否符合真实用户场景中的数据分布。当我们使用数据库中不存在的数据时,就必须考虑输入是否符合真实用户的输入。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文通过案例分析了性能测试中参数化数据错误使用导致TPS下降的情况。作者指出,对性能参数化数据的理解不足是主要原因之一。文章深入浅出地介绍了对操作系统、应用和数据库的性能数据查看和分析过程,通过对CPU使用率、堆曲线趋势等多方面的分析,最终得出DB没有问题的结论。在没有其他监控工具的情况下,作者采用了抓包的手段进行分析,详细解释了TCP segment of a reassembled PDU的含义和影响。最终发现数据库自己耗时了两秒来做reassemble PDU,导致了SQL执行慢的问题。文章以案例为线索,强调了性能测试中参数化数据的重要性和正确使用方法,对性能测试工程师具有一定的借鉴意义。文章还提到了数据分布不均衡可能带来的性能问题,以及在性能分析中全局监控和定向监控的重要性。整体而言,本文通过实际案例深入浅出地介绍了性能测试中的问题排查和解决方法,对于性能测试从业人员具有一定的借鉴意义。

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

全部留言(8)

  • 最新
  • 精选
  • 坚持半途而废
    这个问题,我们一般是查日志,多执行几次,看看是不是同样的时间段波动。把响应时间长的流水打印出来,看日志主要时间消耗在哪,定位是应用还是数据库问题。

    作者回复: 嗯,你这个手法是比较理智的。

    2021-11-03
    2
    4
  • 凌空飞起的剪刀腿
    经常通过tcpdump抓包了,不过老师这次抓的包,竟然能分析出db慢,太强了

    作者回复: 也是花了很长时间的。

    2020-04-04
    1
  • Geek_8e5c47
    数据分布和生产不一致,压出来性能结果很难预估生产真实性能的情形

    作者回复: 理解的很正确。

    2020-03-05
    1
  • 凯耐
    亲身经历造的数据有问题导致TPS突然下降(一个用户下面造了1w多张不符合业务场景的数据,导致优惠券查询列表接口rt特别慢),切记造的数据一定要符合生产环境的业务场景

    作者回复: 多么痛的领悟,你曾是.......

    2022-11-21归属地:广东
  • kaixin
    老师,第一张图应用服务器查看top 时,一共120任务,119sleep 不用管吗?

    作者回复: 不用管。我们主要看下面的process table。

    2021-01-13
  • 蔡森冉
    抓包就只会用fillder,拿到接口基本数据,但是老师我还是不明白为什么抓包可以判断出响应时间?

    作者回复: 看前面的时间戳。

    2020-03-26
  • 啊啊
    现在我只能看到压测工具上的响应时间,如果链路较长,通过什么手段可以准确麻烦每个链路的响应时间? 目前做法:可以从最后面的链路一层层压上来,再计算每一层的响应时间。有没有其他的监控工具可以直接把每一层的时间拿到?

    作者回复: 请看skywalking那一章。有你要的答案。

    2020-03-12
    2
  • 小老鼠
    最好可以从线上釆集测试数据
    2020-03-25
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部