线程、并发、吞吐量、TPS、QPS、响应时间

news/2025/2/24 16:55:30/文章来源:https://www.cnblogs.com/yjh1995/p/18565793

线程数、并发用户数

线程数: 主流的性能测试工具(Jmeter/Loadrunner),以线程式并发的方式,启动复数个线程,让每个线程独立向服务器端发出请求,帮我们达成“短时间内向服务器发送大量请求”的任务。

有时候我们在描述性能测试过程时,会将这个客户端的独立线程数表述为“并发数”。

注意: 这里的“并发”指的是客户端并发,并不是服务端的并发。很简单,客户端能发出很多请求,服务器却未必能处理得了~

并发用户数:某一时刻同时向服务器发送请求的用户数。

需要明白的一个误区:并发用户数和 jmeter 的线程数,它们是不对等的。并发用户数应该和 tps 是一个概念,假如需求是想获取 1000 个用户同时操作时,系统能否承受得住或者系统各项指标反应如何,我们应该拿 tps 来给出答案。jmeter 的线程数大小仅仅是一个压力的大小概念。

img

常见问题:计算最大线程数
查询功能,需要系统能够在5分钟内能完成5000笔查询业务,同时用户响应时间不超过3s,该用多少线程数施压?
计算公式:最大线程数= (单次响应时间业务量)/总的业务时间
答案:(3 ** 5000)/560=50

img

相对并发和绝对并发

什么是相对并发和绝对并发?

相对并发:指在一个时间段内发生的事情。在jmeter的测试计划中添加线程组,设置线程属性,2秒之内启动10个线程,其对应的相对并发为5(线程数/启动时间)。

绝对并发:指在同一时刻发生的事情。jmeter可以使用同步定时器(Synchronizing Timer)实现绝对并发,也就是同一个时刻达到了某一集合点才发出请求。

img

压测时选用哪个更合适?

绝对并发的优点:对服务器来说,会产生一种瞬间高并发。
绝对并发的缺点:对服务器来说,平均压力会降低。

根据业务来选择:
如果业务场景是瞬间高并发类型的,如抢购、秒杀等,需要加集合点。
或者是多场景测试,你需要确保数据流上下游关系,控流的时候可以考虑.
其他场景都不需要加,加了集合点后,就不适用tps来衡量系统性能。

img

集合点功能要慎重选择
因为加了集合点后,系统的平均压力会降低。原因是多线程在集合的时间,服务器和数据库都处于休息状态,他们会有足够的时间去释放连接和内存等恢复工作。

有些加了集合点并发测试通过了,但是上线后就出现某些资源占满情况,就是因为线上真实场景是不会集合的,也就是不会给服务器一个缓解的时间。

吞吐量

吞吐量是服务端的指标:吞吐量是站在“量”的角度去度量,是一个参考指标, 是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标。

但是光有“量”的数据有时候并无太大价值,一家餐厅1个小时卖出100份餐品和一个月才卖出100份餐品,单从“量”的维度衡量肯定不行,时间维度很重要!

性能测试领域的吞吐量通常会结合上时间维度进行统计。如果吞吐量的“量”以“事务”为统计单位的话,结合时间维度,就可以换算成TPS。

img

TPS & QPS

QPS: Queries Per Second,每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)。

因此QPS代表的场景不够全面,仅仅适用于只执行单次查询的接口,不建议用QPS来作为系统性能指标。

TPS: Transactions Per Second,每秒事务数,具体事务的定义,是人为制定的,可以是一个接口、多个接口、一个业务流程等等……

以单接口定义为事务为例,每个事务包括了如下3个过程:

  • 向服务器发请求.
  • 服务器自己的内部处理(包含应用服务器、数据库服务器等)
  • 服务器返回结果给客户端

如果每秒能够完成N次这3个过程,TPS就是N。
如果多个接口定义为一个事务,那么这多个请求完成一次,算做一个TPS。

img

TPS和QPS的关系
如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps。
如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其它接口,qps=n*tps。

如何估算TPS
根据已有接口评估:
如果是一个老接口–上一次大促峰值的3-5倍为目标TPS
如果是一个新接口–可以参考相同业务场景的其他接口目标制定

根据业务量评估:
案例:
预期20万注册用户,其中每天活跃用户峰值预计占10%,首页存在游客访问则增加一倍;活跃用户平均每人每天访问接口4次;访问时间段大多数在20:00-21:00

计算方式:
通过二八原则,80%的业务在20%的时间产生
峰值TPS=业务量 * 80%/业务时段(秒)* 20%
计算:200000 * 10% * 2 * 4 * 80%/3600 * 20%=178

img

响应时间

最小、最大、平均、90th pct:最小响应时间、最大响应时间、平均响应时间都很好理解。
这里只单独说一下90th pct的含义:
表示将整个测试过程中,接口所有请求的所有响应时间按从小到大排列为N个点,取N*90%这个点的响应时间即为此请求的90%响应时间,其代表90%的请求在此响应时间以内。

img

知识扩展:Std.Dev: Standard Deviation

在Jmeter的监听器summary report中,我们会看到有这样的一个字段:

img

那这个字段是什么意思呢?解释如下:

std.deviation: 标准偏差,一种度量数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度.

标准偏差的值越小,则说明各个样本的响应时间越接近平均值,一定程度上也表明系统更加稳定.

计算标准偏差的值,可以在Excel中使用公式:=STDEV.P() 来计算.

举个例子:
两组数据,平均值都是70,但是明显第二组数据相比第一组数据,各个样本的值更接近平均值:

img

计算两组数据的标准偏差值,第二组2.16,第一组17.07,因此标准偏差的值越小,则说明各个样本的值越接近平均值:

img

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RAG场景、数据、应用难点与解决

RAG基础 RAG也在很多行业积极实践中,在【RAG行业交流中发现的一些问题和改进方法】提到了,RAG应该算是核心底层,适配各行各业,依然需要基础组件和各行业的适配应用:如果我们需要倾向于获取外部知识和重视透明度,RAG是我们的首选。另一方面,如果我们正在使用稳定的标记数…

RAG应用评估

为什么需要对RAG系统评估 评估是AI开发流程中的一个非常关键步骤,它被用于检查当前策略相对于其他策略的有效性,或在当你对流程进行更改时进行评估。因此在进行LLM项目的开发和改进时,必须要有衡量其表现的方法。 LlamaIndex中RAG处理过程(图片来源:https://docs.llamaind…

python中的f-string

在 Python 中,f" " 语法表示 f-string,是一种用于格式化字符串的方式。f 代表“格式化”(formatted),即它允许在字符串中嵌入表达式或变量,并将其评估后嵌入到字符串中。 这种语法在 Python 3.6 及以后版本中被引入,是一种非常简洁且高效的字符串格式化方法。…

图表全能王(ChartStudio) - 终极图表制作工具

在如今数据驱动的时代,能够快速、准确地将数据可视化已成为个人和企业的一项必备技能。图表全能王 (ChartStudio) 是一款强大的图表制作工具,不仅支持丰富的图表类型,还能够帮助用户以极简的操作轻松创建专业级别的可视化效果。 下载地址 立即下载 ChartStudio : https://a…

词云图大师(WordCloudMaster)_ 探索创意无限的词云世界!

在信息化时代,如何以一种新颖且富有创意的方式表达数据、文字或想法?答案是词云图!而词云图大师(WordCloudMaster),正是您的绝佳选择。 无论是个人创意项目,还是专业工作中的数据可视化,词云图大师都能以强大的功能、灵活的操作和惊艳的效果,满足您的需求。通过下载并使…

rebuttal摘录

link: https://zhuanlan.zhihu.com/p/602024489link: https://blog.csdn.net/qq_41895003/article/details/135050957

地平线 bev_cft_efficientnetb3 参考算法-v1.2.1

01 概述 在自动驾驶感知算法中 BEV 感知成为热点话题,BEV 感知可以弥补 2D 感知的缺陷构建 3D “世界”,更有利于下游任务和特征融合。 地平线集成了基于 bev 的纯视觉算法,目前已支持 ipm-based 、lss-based、 transformer-based(Geometry-guided Kernel Transformer、det…

第八次高级语言程序作业

班级:https://edu.cnblogs.com/campus/fzu/2024C 作业要求: https://edu.cnblogs.com/campus/fzu/2024C/homework/13307 学号:102400110 姓名:阿卜杜拉 阿布力克木 11.13.111.13.211.13.311.13.611.13.712.112.212.312.8 12.9本次作业对我来说难度很高,我会反复观看

js+jquery实现贪吃蛇经典小游戏

项目只使用到了html,css,js,jquery技术点,没有使用游戏框架,下载本地直接双击index.html 运行即可体验游戏效果。项目展示 进入游戏游戏开始游戏暂停html文件 <!DOCTYPE html> <html> <head><meta charset="UTF-8"><meta name="vi…