性能场景和性能需求指标

目录

一 性能场景

1、基准性能场景

2、容量性能场景

3、稳定性性能场景

4、异常性能场景

 二 性能需求指标

1、业务指标

2、技术指标

2.1 时间指标 RT

2.2 容量指标 TPS

2.3 资源利用率

3、指标之间的关系

“TPS”与“响应时间”

“用户数”与“TPS”与“压力工具中的线程数”


最近在网上搜索了很多性能测试的资料,都不能让我有深入的理解,直到看了高楼老师的《性能测试实战30讲》和《高楼的性能工程实战课》培训课程,才觉得对性能有了一个全貌的认知;

虽然做过几个性能测试项目,但是也仅仅局限在,就像老师所说“就是做些脚本、参数化、关联,压起来之后,再扔出一个结果。”

老师的课程内容很丰富,目前还在学习阶段,并不能完全消化理解,但是又想记录下来一些东西以加深理解,所以有了这篇文章,本文的描述和图片全部摘自老师的培训课程。

“性能测试”不仅仅包括测试,还包括分析和调优

性能测试是针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。

一 性能场景

1、基准性能场景

也可称之为单交易容量,即将每一个业务都压到最大TPS,从而为后续场景做数据比对。

2、容量性能场景

也可称之为混合容量性能场景,即将所有业务根据比例加到一个场景中,在数据、软硬件环境、监控等的配合之下,分析瓶颈并调优的过程。

3、稳定性性能场景

核心就是时长。在长时间的运行之下,观察系统的性能表现,分析瓶颈并调优的过程。

  1. 稳定性的时间长度要合理,也就是说要合理判断稳定性场景需要运行多长时间;
  2. 稳定性使用的TPS量级要合理,也就是说我们要合理判断稳定性场景应该用多大的压力执行。

4、异常性能场景

显然就是异常的定义最为重要。之前我们常用的手段就是宕主机、宕应用、宕网卡。随着云基础架构的发展,现在我们还有宕容器、宕虚机、宕缓存、宕队列、宕集装箱、宕流控、宕熔断等等。实际的场景中要模拟什么样的异常,一定是根据系统的业务架构和部署架构分析而来的。不是看到什么都在宕一下。

 
二 性能需求指标

1、业务指标

所有的技术指标都是在有业务场景的前提下制定的,而技术指标和业务指标之间也要有详细的换算过程。

2、技术指标

2.1 时间指标 RT

响应时间指的是客户端发出请求到得到响应的整个过程所经历的时间;

2.2 容量指标 TPS

TPS(Transactions Per Second),每秒事务数;

在性能测试过程中,TPS之所以重要,是因为它可以反应出一个系统的处理能力。

其中的T为事务,事务就是统计了一段脚本的执行时间,性能中TPS中T的定义取决于场景的目标和T的作用。

如果我们要单独测试接口1、2、3,那T就是接口级的;如果我们要从用户的角度来下一个订单,那1、2、3应该在一个T中,这就是业务级的。

接口级脚本——事务start(接口1)
接口1脚本
——事务end(接口1)
——事务start(接口2)
接口2脚本
——事务end(接口2)
——事务start(接口3)
接口3脚本
——事务end(接口3)

业务级接口层脚本

(就是用接口拼接出一个完整的业务流)

——事务start(业务A)
接口1脚本 - 接口2(同步调用)
接口1脚本 - 接口3(异步调用)
——事务end(业务A)
用户级脚本——事务start(业务A)
点击0 - 接口1脚本 - 接口2(同步调用)
点击0 - 接口1脚本 - 接口3(异步调用)
——事务end(业务A)

2.3 资源利用率

CPU 内存 IO 网络;

3、指标之间的关系

“TPS”与“响应时间”

图中蓝线表示TPS,黄色表示响应时间。

在TPS增加的过程中,响应时间一开始会处在较低的状态,也就是在A点之前。

接着响应时间开始有些增加,直到业务可以承受的时间点B,这时TPS仍然有增长的空间。

再接着增加压力,达到C点时,达到最大TPS。

我们再接着增加压力,响应时间接着增加,但TPS会有下降(请注意,这里并不是必然的,有些系统在队列上处理得很好,会保持稳定的TPS,然后多出来的请求都被友好拒绝)。

最后,响应时间过长,达到了超时的程度。

“用户数”与“TPS”与“压力工具中的线程数”

上面的一个框中有四个箭头,每个都代表着相同的事务。

在上面这张示意图中,其实压力工具是4个并发线程,由于每个线程都可以在一秒内完成4个事务,所以总的TPS是16。

对在线的用户做并发度的分析,在很多业务中,并发度都会低于5%,甚至低于1%。

拿5%来计算,就是10000用户x5%=500(用户级TPS),注意哦,这里是TPS,而不是并发线程数。

如果这时响应时间是100ms,那显然并发线程数是500TPS/(1000ms/100ms)=50(并发线程)。

但是!响应时间肯定不会一直都是100ms的嘛。所以通常情况下,上面的这个比例都不会固定,而是随着并发线程数的增加,会出现趋势上的关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/74277.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计HTML5表格

在网页设计中,表格主要用于显示包含行、列结构的二维数据,如财务表格、调查数据、日历表、时刻表、节目表等。在大多数情况下,这类信息都由列标题或行标题及数据构成。本章将详细介绍表格在网页设计中的应用,包括设计符合标准化的…

构建之法 - 软件工程实践教学:每天都向前推进一点点

作者:福州⼤学 汪璟玢⽼师 汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。 ​邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去! 汪老师&…

IEEE权威杂志特别报道一款国内大语言模型,不是百度、不是阿里、不是华为……

现如今,大模型早已成为街谈巷议的 AI 话题,ChatGPT 更火出了圈。NLP、CV 和多模态领域的大模型层出不穷,并朝着通用方向不断演进,让人们看到了 AGI 的希望。 在大模型时代,除了继续升级预训练、微调等技术和算法之外&a…

武汉地铁19号线完成5G专网全覆盖,现场测试下行速率超千兆!

近日,极目新闻记者从中国移动湖北公司获悉,随着武汉地铁19号线全线隧道正式贯通,湖北移动目前已完成新月溪公园至鼓架山站5G网络覆盖,轨行区5G专网全覆盖,并成功进行试车验证,19号线成为国内首条全线实现5G…

基于ipad协议的gewe框架进行微信群组管理(二)

友情链接 geweapi.com 点击访问即可。 获取群组详情 小提示: 该接口可以一次查询20个群组查询出来的信息是不带公告的 请求URL: http://域名地址/api/group/detail 请求方式: POST 请求头: Content-Type:applica…

Base64编码-算法特别的理解

Base64 在DES加密和AES加密的过程中,加密的编码会出现负数,在ascii码表中找不到对应的字符,就会出现乱码。为了解决乱码的问题,一般结合base64使用 所谓Base64,即是说在编码过程中使用了64种字符:大写A到Z、…

数据结构:力扣OJ题(每日一练)

题一:有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号…

智安网络|恶意软件在网络安全中的危害与应对策略

恶意软件是指一类具有恶意目的的软件程序,恶意软件是网络安全领域中的一个严重威胁,给个人用户、企业和整个网络生态带来巨大的危害。通过潜伏于合法软件、邮件附件、下载链接等途径传播,破坏用户计算机系统、窃取敏感信息、进行勒索等不法行…

Linux 终端操作命令(2)内部命令

Linux 终端操作命令 也称Shell命令,是用户与操作系统内核进行交互的命令解释器,它接收用户输入的命令并将其传递给操作系统进行执行,可分为内部命令和外部命令。内部命令是Shell程序的一部分,而外部命令是独立于Shell的可执行程序…

华为AI战略的CANN

基于TVM的华为昇腾体系中—— 异构计算架构(CANN)是对标英伟达的CUDA CuDNN的核心软件层,向上支持多种AI框架,向下服务AI处理器,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台 主要包括有…

CSS前端开发指南:创造精美的用户界面

简介: 《CSS前端开发指南:创造精美的用户界面》是一本旨在帮助读者掌握CSS技术,实现令人惊叹的前端用户界面的实用指南。无论您是初学者还是有经验的开发者,本书都将为您提供全面的知识和实用技巧,帮助您创建引人注目…

网页显示摄像头数据的方法---基于web video server

1. 背景: 在ros系统中有发布摄像头的相关驱动rgb数据,需求端需要将rgb数据可以直接在网页上去显示。 问题解决: web_video_server功能包,相关链接: web_video_server - ROS Wiki 2. 下载,安装和编译&a…

Java算法_ 二叉树的最大深度(LeetCode_Hot100)

题目描述:给定一个二叉树 ,返回其最大深度。root 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 获得更多?算法思路:代码文档,算法解析的私得。 运行效果 完整代码 /*** 2 * Author: LJJ* 3 * Date: 2023/…

Rx.NET in Action 第四章学习笔记

Part 2 核心思想 《Rx.NET in Action》这一部共分八章,涵盖了Rx 关键模块——**Observable(可观察序列)和Observer(观察者)**的全部功能,以及如何创建它们、连接它们和控制它们之间的关系。 然后,您将学习如何使用强大的 Rx 处理器构建复杂…

2023年京东按摩仪行业数据分析(京东销售数据分析)

近年来,小家电行业凭借功能与颜值,取代黑电和白电,成为家电市场的主要增长点。在这一市场背景下,颜值更高、功能更丰富、品种更齐全的各类按摩仪,借助新消费和电子商务的风潮,陆续被推上市场。今年&#xf…

VSCode使用SSH无密码连接Ubuntu

VSCode使用SSH无密码连接Ubuntu 前提条件: 1. 能够正常使用vscode的Remote-ssh连接Ubuntu 2. Ubuntu配置静态ip(否则经常需要修改Remote-ssh的配置文件里的IP) 链接-> ubuntun 18.04设为静态ip(.net模式,可连接…

LVGL学习笔记 30 - List(列表)

目录 1. 添加文本 2. 添加按钮 3. 事件 4. 修改样式 4.1 背景色 4.2 改变项的颜色 列表是一个垂直布局的矩形,可以向其中添加按钮和文本。 lv_obj_t* list1 lv_list_create(lv_scr_act());lv_obj_set_size(list1, 180, 220);lv_obj_center(list1); 部件包含&…

手机的发展历史

目录 一.人类的通信方式变化 二.手机对人类通信的影响 三.手机的发展过程 四.手机对现代人的影响 一.人类的通信方式变化 人类通信方式的变化是一个非常广泛和复杂的话题,随着技术的进步和社会的发展,人类通信方式发生了许多重大的变化。下面是一些主…

【Linux命令详解 | ps命令】 ps命令用于显示当前系统中运行的进程列表,帮助监控系统状态。

文章标题 简介一,参数列表二,使用介绍1. 基本用法2. 显示所有进程3. 显示进程详细信息4. 根据CPU使用率排序5. 查找特定进程6. 显示特定用户的进程7. 显示进程内存占用8. 查看进程树9. 实时监控进程10. 查看特定进程的详细信息11. 查看特定用户的进程统计…

哪种电容笔更好用?学生党开学值得买电容笔推荐

在过半个月就马上要到开学季了,随着平板电脑在大学校园内的普及,对电容笔提出了更高的要求。而苹果的正版电容笔产品,虽然有着强大的功能,但由于其具有更加昂贵的价格,让其只能作为一种学习和记录的工具,由…