关于这几个词的概念,在CSDN上看了很多文章,解释和计算公式也是五花八门,发现没有一篇解释的既全面又便于理解的,索性参考别人的文章再结合自己的理解,整理一下分享给大家,如有理解错误还望纠正。
先大概介绍下这几个词的概念,再结合jmeter压测数据理解:
一、QPS:
Queries Per Second(每秒查询率),每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。
计算公式:
qps = 请求查询数 / 秒
qps = fetchs / per second
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
qps相当于最大吞吐率
二、RPS:
Requests Per Second(每秒发送请求数/吞吐率),指客户端每秒发出的请求数。阿里云PTS 对于这个词的解释为RPS有些地方也叫做QPS,在不单独讨论“事务”的情况下可以近似对应到Loadrunner/jmeter的TPS(Transaction Per Second, 每秒事务数)。
计算公式:
吞吐率 = 总请求数 / 处理这些请求的总完成时间
Requests per second = Complete requests / Time taken for tests
吞吐率是服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。
某个并发用户数下单位时间内能处理的最大的请求数,称之为最大吞吐率。
截图来源:《并发模式与 RPS 模式之争,性能压测领域的星球大战》
链接:https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&mid=2247487138&idx=1&sn=be66769443f8157461c9ef12cba7722c&chksm=fdeb3cc2ca9cb5d423dceb71977e01a07be3be552a9b7cc63afec96936ee0b14ef07ff602345&token=1058504863&lang=zh_CN#rd
三、TPS:
Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS一般包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)
CAPS: Call Attempts Per Second (每秒建立呼叫数量)
TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。
四、RT
Reponse Time(响应时间),从发起请求到完全接收到应答的时间消耗。
五、并发数
同时访问服务器站点的连接数。
建议参考文章:https://www.cnblogs.com/xiaowenshu/p/10727523.html
六、并发连接数
(The number of concurrent connections)
并发连接数就是服务器某个时刻所接受的请求数目,也就是某个时刻所接受的会话数目。
七、并发用户数
(The number of concurrent users, Concurrent Level)
一个用户可能产生多个会话,所以并发用户数和并发连接数并不重复。并发用户数是指服务器某个时刻所能接受的用户数。
八、用户平均请求等待时间
(Time per requests)
计算公式:
用户平局请求等待时间 = 总时间 / (总请求数 / 并发用户数)
Time per requests = Time taken for tests / (Complete requests / Concurrent Level)
九、服务器平均请求等待时间
(Time per requests: across all concurrent requests)
计算公式:
服务器平均等待时间 = 总时间 / 总请求数
Average request latency server = Time taken for tests / Complete requests
十、线程数
程序运行中消耗cpu的线程数,在正常消耗范围内线程数越大越好。
十一、吞吐量
吞吐量,是指在一次性能测试过程中网络上传输的数据量的总和。
对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。如一个大型工厂,他们的生产效率与生产速度很快,一天生产10W吨的货物,结果工厂的运输能力不行,就两辆小型三轮车一天拉2吨的货物,比喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。
提示,用吞吐量来衡量一个系统的输出能力是极其不准确的,用个最简单的例子说明,一个水龙头开一天一夜,流出10吨水;10个水龙头开1秒钟,流出0.1吨水。当然是一个水龙头的吞吐量大。你能说1个水龙头的出水能力是10个水龙头的强?所以,我们要加单位时间,看谁1秒钟的出水量大。这就是吞吐率。
转:Jmeter服务器性能压测之—QPS/RPS/TPS/RT/并发数/并发连接数/并发用户数/线程数/吞吐量等概念详解