【性能测试】基础知识篇-并发用户、RPS、TPS的解读

本文介绍并发用户、RPS、TPS的基本概念以及三者之间的关系。

术语定义

  • 并发用户:在性能测试工具中,一般称为虚拟用户(Virtual User,简称VU),指的是现实系统中操作业务的用户。
    说明 并发用户与注册用户、在线用户不同。注册用户一般指的是数据库中存在的用户。在线用户只是“挂”在系统上,对服务器不产生压力。但并发用户一定会对服务器产生压力。

  • TPS:Transaction Per Second,每秒事务数,是衡量系统性能的一个非常重要的指标。
    说明 系统每秒处理事务数越多证明您的机器性能越好。

  • RPS:Request Per Second,每秒请求数。RPS模式适合用于容量规划和作为限流管控的参考依据。

  • RT:Response Time,响应时间,指的是业务从客户端发起到客户端接收的时间。
    在性能测试中,通常有两种施压模式:并发模式和RPS模式。传统方式是使用并发用户数来衡量系统的性能(站在客户端视角)。此方法一般适用于一些网页站点的压测(例如H5页面);而RPS(Requests per second)模式主要是为了方便直接衡量系统的吞吐能力TPS(Transaction Per Second,每秒事务数)而设计的(站在服务端视角),按照被压测端需要达到TPS等量设置相应的RPS,应用场景主要是一些动态的接口API,例如登录、提交订单等等。

  • QPS Queries Per Second 是每秒查询率 ,是一台服务器 每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内 所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。

RPS与QPS有什么区别:
RPS(Requests Per Second)和QPS(Queries Per Second)是两个常用的性能指标,用于衡量系统的处理能力和吞吐量。
RPS通常用于衡量Web应用程序或API的性能,表示每秒钟能够处理的请求数量。例如,如果一个Web应用程序能够处理每秒钟100个请求,那么它的RPS就是100。
QPS通常用于衡量数据库系统的性能,表示每秒钟能够处理的查询数量。例如,如果一个数据库系统能够处理每秒钟100个查询,那么它的QPS就是100。
因此,RPS和QPS的主要区别在于它们衡量的是不同类型的操作。RPS衡量的是Web应用程序或API的请求处理能力,而QPS衡量的是数据库系统的查询处理能力。

VU和TPS换算

  • 公式描述:TPS=VU/RT,(RT单位:秒)。

举例说明:假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1。如果某笔业务响应时间是1 ms,那么1个虚拟用户在1s内能完成1000笔事务,TPS就是1000了;如果某笔业务响应时间是1s,那么1个虚拟用户在1s内只能完成1笔事务,要想达到1000 TPS,就需要1000个虚拟用户。因此可以说1个虚拟用户可以产生1000 TPS,1000个虚拟用户也可以产生1000 TPS,无非是看响应时间快慢。

如何获取VU和TPS

VU获取方式:

已有系统:可选取高峰时刻,在一定时间内使用系统的人数,这些人数可认为是在线用户数,并发用户数可以取10%,例如在半个小时内,使用系统的用户数为10万,那么取10%(即1万)作为并发用户数基本就够了。

新系统:没有历史数据作参考,建议通过业务部门进行评估。

TPS获取方式:

已有系统:可选取高峰时刻,在一定时间内(如3分钟10分钟),获取系统总业务量,计算单位时间(秒)内完成的笔数,乘以25倍作为峰值的TPS,例如峰值3分钟内处理订单18万笔,平均TPS是1000,峰值TPS可以是2000~5000。

新系统:没有历史数据作参考,建议通过业务部门进行评估。

如何评价系统的性能

针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到串联链路中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。同样的,如果系统间的吞吐能力差别很大,那么同样的并发下TPS差距也会很大。

性能测试策略

做性能测试需要一套标准化流程及测试策略。在做负载测试的时候,传统方式一般都是按照梯度施压的方式去加用户数,避免在没有预估的情况下,一次加几万个用户,导致交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内;较为适合互联网分布式架构的方。最佳实践是用TPS模式(吞吐量模式)+设置起始和目标最大量级,然后根据系统表现灵活的手工实时调速,效率更高,服务端吞吐能力的衡量一步到位。

总结

综上所述,可以得出以下结论:

系统的性能由TPS决定,跟并发用户数没有多大关系。

系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。

建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。

一般情况下,大型系统(业务量大、机器多)做压力测试,10000~50000个用户并发,中小型系统做压力测试,5000个用户并发比较常见。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

2025考研 | 北京师范大学计算机考研考情分析

北京师范大学(Beijing Normal University)简称“北师大”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”,入选国家“双一流”、“珠峰计划”、“2011计划”、“111计划”、…

C++入门-stack和queue(下)

大家好啊,在这先祝天下的母亲节日快乐啦!现在呢,给大家带来C中priority_queue和容器适配器的相关知识点 3.1 C 中的优先队列(priority_queue)介绍 优先队列(priority_queue)是一种特殊的队列…

LeetCode343:整数拆分

题目描述 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 代码 动态规划 class Solution { public:int integerBreak(int n) {/*dp[i]:表示对…

CANopen总线_CANOpen开源协议栈

CANopen是自动化中使用的嵌入式系统的通信协议栈和设备配置文件规范。就OSI 模型而言,CANopen 实现了以上各层,包括网络层。 CANopen 标准由一个寻址方案、几个小型通信协议和一个由设备配置文件定义的应用层组成。通信协议支持网络管理、设备监控和节点…

【c++】二叉搜索树(BST)

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章来到二叉搜索树的内容 目录 1.二叉搜索树的介绍2.二叉搜索树的操作与实现insert插入Find查找InOrder中序遍历Erase删除 3.二叉搜索树的应用(K…

代理IP可靠吗?哪里可以找到可靠的代理?

需要代理来访问受限制的网站或改善您的在线隐私?别再犹豫了!在这篇博文中,我们将探讨您可以使用的选项,并提供有关在哪里获取代理的指导。 首先,让我们了解什么是代理及其工作原理。代理充当您的设备和互联网之间的中介…

内容与图像一对多问题解决

场景复现 分析: 其实这是两给表,一个内容表,一个图片表,一对多的关系。 解决思路: 1. 先上传图片拿到图片的List集合ids,返回值是集合的ids,给到前端 2. 再添加内容表的数据生成了id,遍历查…

git版本控制器详解(3)本地和远端同步

为什么要使用gitee? gitee是基于git所搭建的网站,会给我们提供一个稳定的服务器保存我们的版本信息。因为github是国外网站,国内访问速度不够稳定,所以我们选择使用gitee。 前边我们讲解了如何在本地进行操作, 接下来进…

Ranger 面试题及答案整理,最新面试题

Ranger 的安全模型是如何设计的? Ranger的安全模型设计主要基于访问控制和安全策略的管理,它通过以下几个关键组件实现: 1、策略管理: Ranger 提供了一个中央管理平台,用于定义、更新和管理安全策略。这些策略根据资…

【小白入门篇6】常识|怎么计算模型需要的资源

01 背景 各个公司相继推出大模型, 有开源和不开源,有些技术爱好者也开始心痒难耐,萌生了私有本地模型,甚至有伙伴构建大模型并进行训练的想法, 大模型不仅比拼技术, 也是比拼爹(资源)的存在, 我个人在实战经历经常问自己,到底需要什么样配置才能跑起来这个模型, 完…

Mysql数据类型设计思考

一、Mysql数据类型设计规范 1.1 选择更小的数据类型 一般情况下,在满足存储要求的基础上,尽量选择小的存储类型。例如:存储0~200,tinyint和bigint都可以存储,那么选择tinyint。原因:越小的数据类型运算速…

【项目】Boost搜索引擎

项目相关背景 现在市面上已经出现很多搜索引擎,比如:百度、Google、Bing等等,它们都是全网性搜索 而我做得项目就像cplusplus网站中搜索C的相关知识一样,同样做的是站内搜索,它的搜索更垂直。 搜索引擎的宏观原理 ser…

模型 洋葱模型(组织管理方向)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。层层深入,探索核心。 1 洋葱模型的应用 1.1 洋葱模型用于职业规划 有一个名叫李明的大学生,他最近感到迷茫和压力,因为他即将毕业并面临职业选择。李明决定寻求心…

Java中55种锁,高级面试题,最新面试题

Java中乐观锁在实际应用中如何解决并发问题? 乐观锁通过假设并发冲突发生概率较低来解决并发问题,主要通过数据版本控制实现。在更新数据前,会检查数据版本是否发生变化,只有在数据版本未变时才允许更新,这样可以避免…

uos server 无法通过ssh工具连接

问题现象 uos server 服务器操作系统 在虚拟机中安装好之后,防火墙已经关闭,ssh服务已经启动,但通过finalshell等ssh工具连接报错 :java.net.ConnectException: Connection timed out: connect 经过确认 防火墙已关,s…

计算机毕业设计springboot体育馆场地预约管理系统【附源码】

计算机毕业设计springboot体育馆场地预约管理系统[附源码] 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制…

人工智能生成图像的兴起:区分事实与虚构

人工智能生成图像的兴起:区分事实与虚构 概述 在人工智能 (AI) 已融入我们日常生活的时代,人工智能生成图像的快速发展引发了人们对数字内容真实性的担忧。最近,人工智能生成的图像甚至欺骗了最敏锐的眼睛,这引发了人们对批判性…

@游戏行业er!MongoDB广州线下沙龙邀您报名!

随着游戏和应用程序的发展,数据变得越来越重要。在为您的下一个游戏选择数据库时,数据库管理者常常会面对灵活性、可扩展性、可靠性、运营效率等问题或挑战。 MongoDB在游戏开发领域有着广泛的应用,灵活数据模型可以存储和处理各种类型的数据…

OPT系列极速版远距离光数据传输器|光通讯传感器安装与调试方法

OPT系列极速版远距离光数据传输器|光通讯传感器使用红外激光通信,满足全双工 100M 带宽,通讯距离可达 300 米。能够快速,稳地传送数据,支持主流的工业控制总线(Profinet,Ethercat 等)&#xff1…

媒体宣发:多元宣发方式的方式有哪些

在信息爆炸的今天,媒体宣发被广泛地运用在各个领域,对于产品宣传、企业形象塑造等都起着至关重要的作用。多样化的媒体宣发方式越来越受到企业的重视,那么常见的媒体宣发方式有哪些呢? 首先,新闻发布是最传统也是最直…