吞吐量
吞吐量通常是指在给定时间段内处理的查询或请求的数量。决定吞吐量上限的因素有两个
1)可用硬件资源的数量,
2)系统中的资源分配和有效利用。
PS:以下是性能测试的主要概念和计算公式。
系统的吞吐量与请求的CPU消耗、外部接口、IO等密切相关。单个请求的 CPU 消耗越高,外部系统接口和 IO 影响速度越慢,系统吞吐量越低,反之亦然。
系统吞吐量参数
- QPS/TPS:每秒请求/事务的数量
- 并发:系统同时处理的请求/事务的数量
- Response Time:完成一个请求的时间(一般取平均响应时间)
理解了以上3个元素的含义后,可以推断出它们之间的关系:QPS/TPS = 并发/平均响应时间
确定吞吐量
因此,系统的吞吐量通常由两个因素决定:并发数和 QPS/TPS。每个系统的这 2 个值都有一个相对限值。只要某个项目达到系统的最高值,系统的吞吐量就会达到最大值。如果请求数和并发数继续增加,系统的吞吐量反而会降低。这是因为系统过载,上下文切换、内存等其他消耗导致系统性能下降。
确定响应时间
系统的响应时间是系统将通过关键路径的系统影响时间。关键路径由 CPU 操作、IO、外部系统响应等组成。
我们在做系统设计的时候,需要考虑CPU操作、IO、外部系统响应因素的影响,以及对系统性能的初步估计。
除了 QPS、并发和响应时间,我们还需要考虑每日峰值。通过观察系统的访问日志发现,在用户较多或TPS最高的情况下,除节假日和季节性因素外,每天同一时间段的访问流量具有相对稳定的关系。
用户数、QPS、响应时间和吞吐量之间的关系。
延迟
延迟是一个动作(由用户或机器发起)在任何给定系统中产生其预期效果(其响应或输出)所花费的时间。它在计算机网络中最常被引用,它是请求通过网络完成其单向或双向(返回)行程所需的时间。在网络请求的上下文中,延迟通常在低端以毫秒为单位,在高端以秒为单位。一个请求(和延迟的度量)可能只是通过网络连接的许多机器上的更大操作的一小部分(具有更高的延迟)。对于不面向用户的工作负载,可接受的延迟可以用几分钟、几小时或更长的时间来衡量。
低延迟的三个关键是:
- 从动作源到数据或计算目的地的物理(或地理)短途旅行。
- 在请求行程期间对任何数据的最小计算(数据应预先计算)。
- 在其数据存储中查找数据的最短时间(例如,通过在数据库上使用良好的索引)。这在技术上也是计算。
延迟一般包括单向延迟和往返延迟。其单位一般为ms、s、min、hr等。
端到端延迟 =客户端处理延迟 网络延迟 服务器处理延迟
- 服务器处理延迟(计算延迟):任务进入处理并完成处理所花费的时间。假设计算资源的可用量、有效利用率和能量转换效率保持不变,任务调度算法将决定一个任务的处理延迟。
网络延迟=发送延迟 传播延迟 处理延迟 排队延迟
- 发送延迟:主机或路由器发送一个数据帧所用的时间(数据帧的第一个比特到帧的最后一个比特)
- 传输延迟:数据帧长度(b)/信道带宽(b/s)
- 传播延迟:电磁波在机器外部的通道介质中传播一定距离所需的时间(通道长度(m)/电磁波在通道上的传播速度(m/s))
- 处理延迟:当主机或路由器接收到一个数据包时,需要一定的时间来处理,例如分析数据包的头部,从数据包中提取数据,进行纠错,或者找到合适的路由
- 排队延迟:当一个数据包通过网络传输时,它必须经过许多路由器。进入路由器后,数据包必须在输入队列中排队进行处理。确定转发接口后,必须在输出队列中排队。
如果你发现我的任何文章对你有帮助或有用,麻烦点赞或者转发。 谢谢!
,