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

10 | 设计基准场景需要注意哪些关键点?

你好,我是高楼。
在前面的课程中我们提到过,在 RESAR 性能工程中,场景分为四类:基准、容量、稳定性、异常。每一类场景都对应着不同的目标。
其中,基准场景是为了找到系统中明显的配置及软件 Bug,同时也为容量场景提供可对比的基准数据。在 RESAR 性能工程的逻辑中,基准场景是非常重要、非常重要的部分,而不是随意试验一下场景能不能跑起来,是要有确定的结论的。
在这节课中,我要给你解释几个基本的问题,比如线程数应该如何确定,压力线程的连续递增的重要性,以及如何将之前所讲的分析思路应用在具体的分析案例中。
下面我们一起来看一看。

性能场景分类

在设计性能场景时,我们首先要清楚场景的目标是什么。在一些项目中,我们通常会拿到这样的需求:
评估一下系统能支持的最大容量。这显然是为了知道当前的系统容量,目标很明确;
测试并优化系统以支持线上的业务目标。这个需求显然有了优化的必要;
测试并评估未来几年内,性能容量是否可以满足业务发展。这个需求显然是要求测试未来的业务场景。
这是我们经常拿到的几类性能需求,基于此,我把场景按照目标划分为三类:
验证:评估当前系统容量;
调优:评估并优化当前系统;
推算:评估并推算未来系统容量。
这种分类和我们一直强调的按类型分类(也就是基准、容量、稳定性、异常)是什么关系呢?这里我画一张图说明一下:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了性能场景设计的关键要点和实际案例。在性能场景中,根据RESAR性能工程理论,可以将场景分为四类:基准场景、容量场景、稳定性场景和异常场景。重点描述了基准场景的逻辑,并给出了实例。基准场景的重要目的是获得单接口最大TPS和解决单接口基准场景中遇到的性能问题,为容量场景打基础。文章详细介绍了基准场景设计的步骤和执行过程,以及针对登录接口的性能问题分析和优化方案。此外,还提出了课后思考问题,引导读者深入思考和交流。整体内容涵盖了性能场景设计的关键要点和实际案例,对读者进行了全面的技术指导和实践经验分享。

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

全部留言(22)

  • 最新
  • 精选
  • 哈哈哈,读我
    如果这是一个单登录接口,就必须高过 150TPS,这是最起码的。而我们现在用的是 8C16G 的机器,根据 CRUD 的测试经验,即使不走缓存,这样的操作要达到 500TPS 应该没什么问题。~老师想问下这个高过150TPS和500TPS怎么来的呀?

    作者回复: 这个150TPS应该写为50TPS,跟方案那一篇中的业务模型中的数据一致才是。已修改。 500是根据经验来的。对于一个8C16G的机器来说,如果是写操作,达到500TPS应该是没有问题的。如果是读操作,还会更高,应该能达到1000TPS以上。

    2021-04-12
    7
  • Beyond
    老师,这个基准场景中,压力线程数通过预估或者直接不断加大线程数得到单接口最大TPS,那之前第8讲的时候,那个利用计算公式,利用在线用户数等得到的请求级线程数。这两个是一回事嘛,那个第8讲中将到的关系,那个计算的线程数是压测过程中作何用的。

    作者回复: 第8讲是为了回答TPS、并发用户、在线用户之间的关系的。 而压力线程预估是为了在实际执行场景过程中来判断的。

    2021-05-07
    3
  • 道长
    老师,你说使用arthas跟踪一下,但我没看到该跟踪命令啊,下面展示应该后面一步的trace 跟踪命令吧!是我理解错了吗?

    作者回复: 下面不是给了trace命令吗?就是在arthas里用的呀。你是不是没操作过arthas?去看看帮助去。哈哈。

    2021-04-14
    2
    2
  • Geek_bbe4c8
    “如果单接口最大 TPS 没有超过容量场景中的要求,那就必须要调优。” 老师,这里我理解下,比如某个容量场景的目标TPS是100,里面包含了某个单接口的调用。 那么这个单接口的基准场景测试的TPS就不应该低于100. 是这个意思么

    作者回复: 是的。

    2021-04-12
    2
  • 飞彼易驭心
    前面分析显示199行耗时最长,最后的图片中写80行耗时长,纳闷了半天,找到源码发现是199行,这回就对应上了。 https://github.com/spring-projects/spring-security/blob/5.3.x/core/src/main/java/org/springframework/security/authentication/ProviderManager.java#L199

    作者回复: 努力学习,天天了解一点。过半年就不是自己了。

    2022-03-09
    1
  • 涵涵
    “要是硬件资源已经用完了,TPS 也满足了容量场景中的要求,那么,从成本的角度来考虑,这个项目就不需要再进行下去了” 这个项目就不需要再进行下去了,是指容量场景不进行了吗?

    作者回复: 整个性能项目。

    2021-08-11
    3
    1
  • sky_you
    老师 有个疑问? 基准测试到底应该是测接口,还是测单业务?

    作者回复: 看制定的场景目标。在我的逻辑中,容量场景是为了模拟被测系统的生产场景。在这之前都放到基准场景中做。 所以按我的逻辑就是,基准场景中是:1, 先测单接口;2. 后测单业务。这两个都放在基准场景中。 由单业务组成的线上真正场景,应该放到容量场景中做。

    2021-06-07
    1
  • 道长
    之前没接触到过arthasᥬ😂᭄,我看到了那个使用方法arthas 代码事例是使用的trace,原来是包含关系,还有一个问题,那trace 后面使用函数名是从那一步得知的呢?,到那我们得知的只有token交易导致时间长的。不明白

    作者回复: 函数名是直接从代码中得来的呀。如果你没有源码,打印栈信息也一样可以知道。

    2021-04-14
    1
  • Geek_1e8550
    高老师,您好,您在课程中使用到的性能测试方案可以提供下吗?

    作者回复: ?什么方案?没理解。 是本课程的第五讲中的方案?那里不是已经写了吗?只要把那几个重点理清晰,方案就写出来了呀。

    2023-12-21归属地:北京
  • Geek_96d21f
    获取单接口最大的tps? 不包含响应时间的吧! 还有做基准场景 ,tps 能否满足 不是看这个接口在容量tps,的占比吗

    作者回复: TPS和响应时间是共生的关系。即便通过增加节点可以加大TPS,但也要考虑响应时间。

    2023-07-26归属地:广东
收起评论
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部