硬核干货!QPS、TPS、并发用户数、吞吐量关系
1、QPS
该指标QPS(Queries Per Second)表示每秒查询率,即一台服务器在规定时间内所能处理的任务数量,它反映了特定查询服务器每秒响应请求数目的能力,同时也代表了该服务器系统在单位时间内的吞吐量上限。
2、TPS
TPS即指Transactions\ per\ Second(TPS\ Transactions\ Per\ Second)。一个事务指的是客户机向服务器发送请求并 server 做出反应的过程。具体而言,在 client 接收 request 后启动 timer,在 server 返回 response data 之前持续一秒钟(或指定时间单位),待 response data 接收完成后停止 timer 并记录所耗费的时间和完成的 transaction 数量。
3、QPS和TPS区别
个人理解如下:
1、Tps即每秒处理事务数,包括了
- 用户请求服务器
- 服务器自己的内部处理
- 服务器返回给用户
这三个过程,每秒能够完成N个这三个过程,Tps也就是N;
在本质上,Qps与Tps具有相似性,但存在显著区别:单个页面访问事件对应一个Tps计数,而一次页面请求可能导致多个服务器应答,这些应答被统计到'Qps'中
例子:
例如:访问一个页面时服务器会被请求三次。其中一次会一次性释放并生成一个标记‘T’;其余两次则会导致生成三个‘Q’标记。
例如:每秒钟能够吞食十个包子的大胃王与一个小女孩在十分之一秒内仅能吞下一个包子之间存在明显的性能差异。他们之间的能力是否存在等同性?显然不是!因为小女孩不可能在短短一秒钟内完成十个包子的吞咽任务!此时这个大胃王的行为模式与TPS一致而那个小女孩则代表了典型的QPS表现。
4、并发数
并行能力:即系统同时可处理的请求数量,并反映了系统的负载水平。这个数值可以通过分析机器每秒处理的请求量来计算得出。
5、吐吞量
数据吞吐量表示为系统在单位时间内处理请求的数量。TPS和QPS常被用作衡量系统吞吐能力的重要量化标准。
系统吞吐量要素
系统的吞吐量与其请求占用CPU资源的程度密切相关,并受到外部接口和IO等多方面因素的影响。
一个请求的CPU使用率越高,则对计算资源的占用越大;同时,外部系统接口设置以及IO操作会显著影响系统的运行速度;此外,在这种情况下,系统的吞吐量将显著下降;相反地,当CPU使用率降低时,则可能提升整体性能表现。
重要参数
QPS(TPS),并发数,响应时间
- QPS(TPS):每秒钟处理的请求/事务数量
- 并发度:系统能够同时处理的请求/事务数量
- 响应时长:通常取平均响应时长
关系
QPS(TPS)=并发数/平均响应时间
通常受QPS(TPS)和并发数这两个因素的共同影响。每个系统的这两项指标都存在一个理论上的最大值,在实际应用场景中承受的压力范围内,在正常情况下不会突破这个界限。一旦某一项性能指标达到理论极限值,在这种情况下系统的吞吐量无法进一步提升。当压力持续超过临界值时,在这一状态下系统的吞吐能力会逐渐下降。
6、PV
PV
7、UV
UV(Unique Visitor):独立访问者,在一天内访问特定网站的不同用户数量统计指标。其可通过分析服务器的日志记录,并结合用户的唯一标识信息进行去重计算得出。响应时间(RT)则指系统完成特定请求所需的时间长度,并通常采用所有请求的平均处理时长作为衡量标准;该参数可通过配置如Nginx和Apache等常见Web服务器设备获取
8、DAU
每日活跃用户(DAU)即为日活跃用户数量。其主要应用于评估网站、互联网应用或网络游戏等平台的运营效果。每日活跃度(DAU)一般情况下表示日常(统计日)内访问过某产品的用户的数量即为其每日活跃度(DAU),其计算方式与独特访问者数(UV)相仿。
9、MAU
MAU(Monthly Active User):每月活跃用户数量指的是通过去重统计的网站、应用程序等平台上的每日活跃用户数量
10、系统吞吐量评估
在进行系统设计的过程中,我们需要关注CPU运算能力、I/O操作以及外部系统的响应能力对其运行效率产生的影响,并对系统的性能表现进行基础预测。
在一般情况下,在处理需求时,我们会计算得出的QPS值,并发数之外还有一个重要的指标是每日PV。
经过分析系统的访问日志数据,在当用户量非常大时,各个时间段内同一时段的访问流量大致保持一致的现象被发现出来。例如,在工作日内每天早上出现这种规律性特征的情况比较明显。只要有日流量图和QPS指标的数据支持,我们就能进行相应的估算。
通常的技术方法:
确定系统运行状态下的最高TPS和日PV值,并分析其呈现较为稳定的关联性(除却节假日及季节性因素的影响)。
通过压力测试与经验预估相结合的方法,
获取系统的峰值吞吐量(TPS)。
进而分析关键关联,
从而计算系统在理想情况下的最大吞吐量。
针对B2B中文环境与淘宝平台的用户群体存在差异,
因此它们各自的网络行为特征不完全适用,
它们之间的TPS和PV关系比例也不一致。
11、软件性能测试的基本概念和计算公式
软件做性能测试时需要关注哪些性能呢?
首先,在软件开发过程中, 我们的主要目标是以满足用户的使用需求为主. 为此, 我们建议从用户体验的角度出发进行分析, 并重点关注哪些关键性能指标.
对于用户而言,在按下按钮、点击链接或发出指令启动后直至系统将其结果以可感知的方式呈现出来之前所经历的时间即为用户的直观感受。这即是常说的响应时间。而当这一反应速度较短时用户体验则较为良好需要注意的是在软件设计中我们需要综合考虑这两者的有机整合以便于提升整体体验例如,在大数据查询场景中我们可以将预先提取的数据展示给用户与此同时继续执行数据检索操作此时用户完全无法察觉后台正在执行相关操作
用户关注的是用户操作的相应时间。
其次,我们站在管理员的角度考虑需要关注的性能点。
1、 响应速度
2、 服务器资源的使用状态是否合理
3、 应用服务器与数据库资源的使用状态是否合理
4、 系统具备扩展能力吗?
5、 系统最多可支持多少用户的并发访问?系统的最大处理能力是多少?
6、 系统性能潜在的瓶颈可能出现在哪里?
7、 更换哪些设备能够提升整体性能?
8、 该系统的日常运营是否覆盖7×24小时需求?
再次,站在开发(设计)人员角度去考虑。
1、系统架构设计的合理性如何?
2、数据库体系结构的合理性如何?
3、代码性能指标是否达标?
4、内存资源利用是否存在不合理之处?
5、多线程环境下的同步机制是否存在问题?
6、资源争夺行为是否规范?
出处链接:https://juejin.im/post/5c2cb5e15188257a937fbfaf?utm_source=gold_browser_extension
本已精心汇编为一份容量达 2TB 的技术资源宝库:其中包含架构师实战教程、大数据与云计算技术详解、Docker容器开发精要以及系统运维最佳实践等内容。通过关注「民工哥技术之路」微信公众号并输入关键字:1024 即可免费领取全部学习资料。
作者:民工哥
原文地址:https://segmentfault.com/a/1190000022345501
喜欢 0
