如何设置目标并发(或者目标RPS)?
基本概念
首先您需要了解什么是并发用户、TPS 和它们之间的关系。
并发用户:指的是现实系统中同时操作业务的用户,在性能测试工具中一般称为虚拟用户(Virutal User)。一般是站在客户侧评估的角度,但是不便于服务端的一些容量评估和高可用评估。
并发用户跟注册用户、在线用户有很大差别。并发用户一定会对服务器产生压力,在线用户数只是 “挂” 在系统上,对服务器不产生压力,而注册用户一般指的是数据库中存在的用户。
TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个重要指标。在 PTS 中,为了直接评估TPS,也可以采用RPS(Request Per Second,每秒请求数)设置压测流量的大小。RPS模式更适合容量规划和作为限流管控的参考依据。
再看一个例子:假如 1 个虚拟用户在 1 秒内完成 1 笔事务,那么 TPS 就是 1。要想达到 1000 TPS 至少需要1000 个用户;如果某笔业务响应时间是 1 毫秒,那么 1 个用户在 1 秒内能完成 1000 笔事务,TPS 就是 1000。
因此 1 个用户可以产生 1000 TPS,1000 个用户也可以产生 1000 TPS,主要看响应时间的快慢。
设置目标并发(或RPS)
对于并发用户数的评估:
可以选取线上系统在高峰时刻一定周期内使用系统的人数,这些人数可以认为是在线用户数,并发用户数取其 10% 就可以了。例如在 1 小时内使用系统的用户数为 10000,一般建议取 10% 左右作为并发用户数。
未上线系统或新上线系统:因没有历史数据可供参考,故只能通过业务发展趋势来预判各项指标。
对于 TPS(RPS)的评估:
线上系统:通过线上系统在高峰时刻 10 分钟内完成的业务量,计算出在单位时间内的处理笔数,即 TPS(RPS) = 业务笔数/单位时间(10*60,以秒为单位)。
未上线系统或新上线系统:因没有历史数据可供参考,故只能通过业务发展趋势来预判各项指标。
最新文章
- Android Weekly Notes Issue #230
- 函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法
- Hyperledger区块数据的访问
- git command
- C#获取ftp文件最后修改时间
- web.xml常用元素
- MVC Filter自定义验证(拦截)
- 在nltk中调用stanfordparser处理中文
- string用法总结
- Centos7 安装 scrapy
- awk骚操作
- 2189 ACM 母函数 素数
- python---windows下安装和使用memcache
- pandas简单应用
- JAVA中String字符串比较equals()和equalsIgnoreCase()的区别
- 深度学习(六十四)Faster R-CNN物体检测
- 【codevs1380】没有上司的舞会 树形dp
- attempt to index a nil value (global 'luasql')
- HihoCoder1445 重复旋律5(后缀自动机)
- 无类型指针 在delphi中可以直接赋值任何指针类型。
热门文章
- Suricata的初始化脚本
- js数据类型之判断
- Kotlin学习的一些心得
- ubuntu破解密码方法
- codevs 5438 zbd之难题(水题日常)
- Android主题更换换肤
- uva1380 A Scheduling Problem
- Node + Express + MySQL 接口开发完整案例
- function语句注意事项
- ERROR: HHH000091: Expected type: java.sql.Timestamp, actual value: java.lang.Integer