转载自:http://hitest.aliyun.com/front/share/shareDetail.htm?spm=0.0.0.0.iqDJNK&shareId=194011410749727463
1. 背景
在做性能测试的时候,很多人都用并发用户数来衡量系统的性能,觉得系统能支撑的并发用户数越多,系统的性能就越好;对TPS不是非常理解,也根本不知道它们之间的关系,因此非常有必要进行解释。
2. 术语定义
Ø 并发用户数:指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User),注意并发用户数跟注册用户数、在线用户数有很大差别的,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。
Ø TPS:Transaction Per Second,每秒事务数, 是衡量系统性能的一个非常重要的指标,
3. 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=
4. 如何获取Vu和TPS
Ø 并发用户数(Vu)获取
新系统:没有历史数据作参考,只能通过业务部门进行评估。
旧系统:对于已经上线的系统,可以选取高峰时刻,在一定时间内使用系统的人数,这些人数认为属于在线用户数,并发用户数取10%就可以了,例如在半个小时内,使用系统的用户数为10000,那么取10%作为并发用户数基本就够了。
Ø TPS获取
新系统:没有历史数据作参考,只能通过业务部门进行评估。
旧系统:对于已经上线的系统,可以选取高峰时刻,在5分钟或10分钟内,获取系统每笔交易的业务量和总业务量,按照单位时间内完成的笔数计算出TPS,即业务笔数/单位时间(5*60或10*60)
5. 如何评价系统的性能
针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。
6. 相关案例
通过大量性能测试我们发现不需要用上万的用户并发去进行测试,只要系统处理业务时间足够快,几百个用户甚至几十个用户就可以达到目的。另外咨询很多专家做过的性能测试项目,基本都没有超过5000用户并发。
因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000用户并发就足够了;对于中小型系统,1000用户并发就足够了。
7. 性能测试策略
做性能测试需要一套 标准化流程及测试策略,并发用户数只是指标考虑的一个,在做负载测试的时候,一般都是按照梯度施压的方式去加用户数,而不是在没有预估的情况下,一次加几 万个用户,,交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内,这样做没有多大的意义,这就好比“有多少钱可以干多少事”一样,需要选择相 关的策略。
8. Loadrunner VS PTS
从下图对比项可以看出,PTS比Loadrunner(LR)更能让客户接受。
方向 |
对比项 |
Loadrunner |
PTS |
备注 |
基础设施 |
被测系统软硬件环境需要额外购买? |
需要 |
不需要 |
基础设施软硬件由阿里云提供,只需要购买服务 |
压力机环境需要额外购买? |
需要 |
不需要 |
基础设施软硬件由PTS提供,只需要购买服务 |
|
费用 |
费用 |
非常贵 |
便宜,按需收费 |
商业化工具License非常贵 |
功能 |
功能 |
强大 |
较强大 |
LR很多功能基本上用不到,没必要大马拉小车 |
易用性 |
操作、学习等 |
困难 |
容易 |
LR不易上手 |
稳定性 |
系统稳定性 |
较稳定 |
非常稳定 |
LR压测过程中经常出现莫名其妙错误 |
场景模拟 |
场景模拟 条件 |
较真实 |
非常真实 |
PTS分布在全国各地的分布式集群可以真实模拟出现实场景,而LR不太容易模拟,即使可以的话,控制机和压力机通信经常掉线 |
9. 总结
Ø 系统的性能由TPS决定,跟并发用户数没有多大关系。在同样的TPS下,可以由不同的用户数去压(通过加思考时间设置)。
Ø 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
Ø 建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。
Ø 一般情况下,大型系统(业务量大、机器多)做压力测试,5000个用户并发就够了,中小型系统做压力测试,1000个用户并发就足够了。
相关推荐
本文将详细解释TPS在线用户和并发的关系,包括在线用户数和压力线程之间的关系、并发用户数的计算、并发度的计算等。 在线用户数和压力线程之间的关系 在线用户数是指系统中当前活动的用户数量,而压力线程是指...
性能之并发用户数的计算 标题解释 ...7. 并发用户数和 TPS 都是评估系统性能的重要指标,但是在评定服务器的性能时,应该结合 TPS 和并发用户数,以 TPS 为主,并发用户数为辅来衡量系统的性能。
在LoadRunner等工具中,性能测试的另一个重要关系式是:TPS=U_concurrent / (T_response+T_think),其中U_concurrent代表并发虚拟用户数,T_response是交易响应时间,T_think是思考时间。这个公式帮助我们理解在特定...
性能测试过程中,可以通过压力测试获取TPS值,并利用公式TPS=U_concurrent / (T_response+T_think)来计算并发数和响应时间之间的关系,其中U_concurrent是并发虚拟用户数,T_response是交易响应时间,T_think是思考...
此外,TPS、并发数和响应时间之间存在如下关系:TPS=U_concurrent / (T_response+T_think),其中U_concurrent是并发虚拟用户数,T_response是交易响应时间,T_think是思考时间。 在软件性能测试中,关注的性能点...
较高的TPS意味着系统能够处理更多的请求,通常与系统响应速度和并发用户数直接相关。 3. **JMeter TPS插件**: 这款插件为JMeter添加了计算和展示TPS的功能,使测试人员能够更直观地监控测试过程中的TPS变化,从而...
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间QPS(TPS):每秒钟request/事务数量并发数:系统同时处理的request/事务数响应时间:一般取平均响应时间(很多人经常会把并发数和TPS理解混淆)理解了上面三...
平均并发用户数和高峰并发用户数则是评估服务器在特定时段承受压力的关键指标。 6. **服务器选择**:不同的服务器产品(如HP、IBM等)和操作系统(Linux、Unix等)具有不同的性能特点,需要根据应用需求来选择。...
文档旨在帮助用户更好地理解性能测试中的关键概念,如虚拟用户、TPS(每秒处理事务数)、响应时间和并发用户数等,以及它们之间的关系。以下是核心知识点的详细说明: 1. **虚拟用户**:在性能测试中,虚拟用户是指...
同时,理解和设定合理的并发用户数目标,有助于确保系统在满足用户需求的同时,避免资源浪费。而QPS的优化则涉及到数据库索引、查询优化等技术手段,以实现更快的数据访问速度。总之,掌握这些性能指标,是系统运维...
总之,理解并正确计算RT、TPS、QPS和并发用户数对于优化Java应用的架构设计、确保系统在高负载下稳定运行以及提升用户体验至关重要。在面试或项目实施中,掌握这些概念和计算方法是成为一名优秀架构师的基础。
性能测试,特别是 Lite 实践,旨在帮助用户理解并正确使用虚拟用户数、TPS(每秒处理事务数)、响应时间和并发用户数等关键指标,以选择合适的测试策略。 1. **虚拟用户**:在性能测试中,虚拟用户代表通过线程或...
- **示例计算**: 假设压力测试得出的TPS为100,且平均每条请求的响应时间为0.5秒,那么根据公式可以推算出系统的并发用户数。 #### 六、软件性能的关注点 - **用户视角**: - 关注点: 用户操作的响应时间。 - ...
在IT行业中,性能测试是衡量系统效率和稳定性的重要环节,其中关键的概念包括吞吐量(TPS)、每秒查询率(QPS)、并发数以及响应时间(RT)。这些指标是评估系统性能的基础,理解它们有助于优化系统设计和提升用户...
当我们在调整线程数(即并发用户数)时,可以通过观察TPS的变化来确定最佳的并发水平。一般来说,增加线程数会提高TPS,但过高的线程数可能导致服务器资源耗尽,反而降低TPS,因此找到这个平衡点至关重要。 在进行...
反之,如果TPS在持续增长,说明系统还有足够的处理能力来应对更多的并发用户。 在实际测试中,通常会配合其他监听器,如“聚合报告”或“响应时间图”,以便全面分析系统的性能表现。聚合报告可以提供平均响应时间...
这意味着,如果我们知道系统可以支持的并发用户数和平均响应时间,我们就能计算出系统的大致吞吐量(RPS),反之亦然。 通过100工人问题的案例,我们可以直观地理解并发、RPS和响应时间之间的关系。假设每个工人的...
在测试过程中,结合这些数据,测试团队可以调整测试场景,例如增加并发用户数,延长测试时间,以更好地模拟实际环境。 此外,"readme.txt"文件通常包含了插件的详细说明,包括安装指南、使用方法、注意事项和可能...