【性能测试】01基础知识篇-并发用户、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个用户并发比较常见。
来源:阿里云PTS
更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取:

【性能测试】01基础知识篇-并发用户、RPS、TPS的解读的更多相关文章
- JMeter性能测试的基础知识和个人理解
JMeter性能测试的基础知识和个人理解 1. JMeter的简介 JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- 【Java面试】1、基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...
- Salesforce Sharing And Visibility 零基础学习(一)基础知识篇
本篇参考: https://trailhead.salesforce.com/en/users/strailhead/trailmixes/architect-sharing-and-visibili ...
- Java白皮书学习笔记+Head First Java--用于自我复习 基础知识篇
本笔记是摘与Hava白皮书上面的内容,用来给自己做提醒的,因此大概并不适合Java的学习者作为笔记参考使用. 以我的水平现在还看不懂这个... 一.基础知识篇 1.常量 final关键字指示常量,只能 ...
- 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- CSS3 的box-shadow进阶之 - 基础知识篇
box-shadow被认为是CSS3最好的特性之一,发挥想象力,搭配其它属性,可以做出很多好看的效果(如下图,将会放在下一篇文章讲解),这篇文章主要讲一下box-shadow的基础知识. ...
- LeetCode刷题191130 --基础知识篇 二叉搜索树
休息了两天,状态恢复了一下,补充点基础知识. 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括Search,minimum,maximum,predecessor(前驱),successor(后继 ...
- 并发用户 VS TPS
TPS模式(吞吐量模式)是一种更好的方式衡量服务端系统的能力. 基本概念: 并发用户数:简称VU ,指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User),注 ...
随机推荐
- Word格式刷快捷键失效恢复方法
突然某天写材料的时候发现word格式刷快捷键变成了Ctrl+Alt+C和Ctrl+Alt+V,用着这个别扭,于是探索如何改回Ctrl+Shift+C和Ctrl+Shift+V,下边是步骤记录. 打开w ...
- 在NextChat中接入SiliconCloud API 体验不同的开源先进大语言模型
NextChat介绍 One-Click to get a well-designed cross-platform ChatGPT web UI, with GPT3, GPT4 & Gem ...
- 手把手教你安装Jupyter Notebook(保姆级教程)
来源于:https://blog.csdn.net/weixin_43855159/article/details/137738714 1. 什么是Jupyter Notebook Jupyter N ...
- 前端使用xlsx模板导出表格
前言 前端导出表格有很多种方案,但是表格样式一旦复杂了,那么就得用代码写excel的样式,还是比较麻烦的.每次样式不一样,就得重新写,这时使用表格模板的优势就体现出来了,想导出不同样式的表格直接修改表 ...
- vim命令之多行注释
vim常用命令之多行注释和多行删除 vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率. 1.多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v, ...
- Email 关于 POP3 IMAP SMTP office365 Outlook Gmail G-Suit shared mailbox小小理解
Outlook 是微软的一个 email 软件, 管理 email 的 UI. Gmail 是 google 的 office365 是一个配套, 里面有 email, one drive, exce ...
- 【赵渝强老师】在Hive中使用Load语句加载数据
一.Hive中load语句的语法说明 Hive Load语句不会在加载数据的时候做任何转换工作,而是纯粹的把数据文件复制/移动到Hive表对应的地址.语法格式如下: LOAD DATA [LOCAL] ...
- 《Vue.js 设计与实现》读书笔记 - 第8章、挂载与更新
第8章.挂载与更新 8.1 挂载子节点和元素的属性 扩展子元素的类型可以为数组,并判断如果是数组的话,就先依次挂载所有的子元素. 同时新增节点属性.属性可以通过 el.setAttribute 添加到 ...
- 2023年6月墨天轮中国图数据库排行榜:TGS 开新局,创邻和字节多点突破露锋芒
鸿鹄不坠青云志,鲲鹏展翅九万里. 2023年 墨天轮中国图数据库流行度排行 已经火热出炉,本月中国图数据库排行榜共有31个数据库参与排名,相比今年1月新增3个数据库.本月图数据库榜单前十变动较大:Tu ...
- 2022年8月中国数据库排行榜:openGauss重夺榜眼,PolarDB反超人大金仓
"烈日杲杲,夺榜愈烈." 2022年8月的 墨天轮中国数据库流行度排行榜 火热出炉,8月排行榜共有236个数据库参与排名.本月榜单前十名的变化可以用"两反超"来 ...