在做性能测试的时候,传统方式都是用并发虚拟用户数来衡量系统的性能(站在客户端视角),一般适用于一些网页站点比如首页、H5 的压测;而 RPS(Requests per second)模式主要是为了方便直接衡量系统的吞吐能力-TPS(Transaction Per Second, 每秒事务数)而设计的(站在服务端视角),按照被压测端需要达到TPS等量设置相应的RPS,应用场景主要是一些动态的接口API,比如登陆、提交订单等等。

VU(虚拟用户)和TPS之间也有其逻辑关系。具体请看下方的说明。

术语定义

并发用户数:简称VU ,指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User),注意并发用户数跟注册用户数、在线用户数有很大差别的,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。

处理能力:简称TPS, 每秒事务数, 是衡量系统性能的一个非常重要的指标。

响应时间:简称RT,指的是业务从客户端发起到客户端接受的时间。

VU 和 TPS 换算

简单例子:在术语中解释了TPS是每秒事务数,但是事务时要靠虚拟用户做出来的,假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1;如果某笔业务响应时间是1ms,那么1个用户在1秒内能完成1000笔事务,TPS就是1000了;如果某笔业务响应时间是1s,那么1个用户在1秒内只能完成1笔事务,要想达到1000TPS,至少需要1000个用户;因此可以说1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,无非是看响应时间快慢。

复杂公式:试想一下复杂场景,多个脚本,每个脚本里面定义了多个事务(例如一个脚本里面有100个请求,我们把这100个连续请求叫做Action,只有第10个请求,第20个请求分别定义了事务10和事务20)具体公式如下:

符号代表意义:

Vui表示的是第i个脚本使用的并发用户数

Rtj表示的是第i个脚本第j个事务花费的时间,此时间会影响整个Action时间

Rti表示的是第i个脚本一次完成所有操作的时间,即Action时间

n 表示的是第n个脚本

m 表示的是每个脚本中m个事务

那么第j个事务的 TPS = Vui/Rti

总的TPS=

如何获取 VU 和 TPS

并发用户数(VU)获取方式:

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

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

TPS获取方式:

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

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

如何评价系统的性能

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

性能测试策略

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

总结

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

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

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

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

mysql rps和tps区别_并发虚拟用户、RPS、TPS的解读相关推荐

  1. mysql检索有什么区别_检索行时,MySQL中AND或OR运算符有什么区别?

    AND,OR之间的区别在于,AND评估两个条件都必须为真,以使整体条件为真.OR求一个条件必须为真,以使整体条件为真. 让我们创建一个表-mysql> create table demo70 − ...

  2. virtual DOM和真实DOM的区别_让虚拟DOM和DOMdiff不再成为你的绊脚石

    来源 | https://juejin.im/post/5c8e5e4951882545c109ae9c Keep Moving 时至今日,前端对于知识的考量是越来越有水平了,逼格高大上了 各类框架大 ...

  3. mysql逻辑删除的区别_不能和逻辑删除一起配置,不然报错。

    源自:8-1 SQL注入器简介及自定义方法实现 不能和逻辑删除一起配置,不然报错. 逻辑删除的配置:@Bean public ISqlInjector sqlInjector(){ return ne ...

  4. mysql投影和选择区别_计算机二级。选择和投影到底有什么区别?

    展开全部 选择是从行的角度进行的运算:投影32313133353236313431303231363533e58685e5aeb931333365666238操作是从列的角度进行的运算.选择是在关系R ...

  5. mysql投影和选择区别_关系运算里面,“选择”和“投影”区分?

    展开全部 一.性62616964757a686964616fe58685e5aeb931333431356638质不同 1.选择:在关系R中选择满足给定条件的诸元组,形成一个新的关系. 2.投影:从关 ...

  6. tps 交易量_交易处理系统(TPS)

    tps 交易量 A transaction is a simple process that takes place during business operations. The transacti ...

  7. mysql 时间段内的周末_淘宝用户行为数据分析(MySQL)

    利用MySQL对淘宝用户行为数据进行分析.分析步骤如下: 1 提出问题 2 理解数据 3 数据清洗 4 构建模型 5 结论 6 建议 淘宝是目前国内最大的电商平台,人们网购的主要渠道之一.买家通过搜索 ...

  8. 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式

    2019独角兽企业重金招聘Python工程师标准>>> PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU ...

  9. 并发量、QPS 和TPS区别

    并发量: 系统同时处理的request/事务数 可以理解为:系统同时处理的request数量 TPS: 每秒处理的查询量. 每秒钟request/事务 数量 可以理解为:每秒处理的request 数量 ...

  10. mysql开启邮件服务_邮件服务之实现基于虚拟用户的虚拟域邮件系统

    postfix+dovecot+SASL+mysql+apache+extmail+extman实现基于虚拟用户的虚拟域邮件系统 声明:省略了前面的基础配置包括安装MYSQL,postfix等,这里用 ...

最新文章

  1. 【数学专题】矩阵乘法
  2. Cacti/Nagios监控系统应用场景
  3. 11.分页(10-10-12)
  4. 网络中间设备路在何方
  5. Java 导入导出Excle表格 两种方式
  6. java机考_【Java】(机考常用)类集
  7. 1.Nginx 简介
  8. 微软开始彻底封杀IE浏览器
  9. elasticsearch查询关键字slop
  10. OneZero第一次站立会议Sprint Planning Meeting(2016.3.21)
  11. FILCO:蓝牙键盘配对教程
  12. python eel vue_张莽子—
  13. easyUI datagrid 遍历集合
  14. Dreamweaver 安装 激活
  15. [转]一个IT人才的精彩故事
  16. 银行智能风险防控系统(第二版)
  17. linux定时每隔多少天,Linux中Cron任务间隔执行:每隔几分钟/几小时/几天
  18. Qt3升级 -Qt论坛问答翻译
  19. 2017.1.12——寒假集训第一天
  20. 数据流压缩原理实现(huffman编码,LZ77压缩算法)

热门文章

  1. Identifying Encrypted Malware Traffic with Contextual Flow Data
  2. [TcaplusDB] 行业新闻汇编(6月29日)
  3. 互联网公司数据产品经理和数据分析师,主要有什么区别?
  4. 深入AXI4总线-[三]传输事务结构
  5. 网络骇客入门之网络编程(一):网络应知应会
  6. 百度地图 - 自定义划分区域并获取区域内的坐标点
  7. java触屏改_一个JAVA游戏改键改触屏的教程!
  8. Redis-事务(集成SpringBoot工程)
  9. 鹿客、小米、智汀、德施曼这几款热门智能门锁测评:谁最安全?谁最便捷?
  10. 无法安装冰点还原_怎样手动ghost还原系统 手动ghost还原系统方法【详解】