仿照古时牛顿三大定律,这里提出web高性能三大定理,主要是对web系统性能度量值的一些内在关系的描述,这里的定理不能像牛顿三大定理那样在力学界起到基础支撑的作用,它只是为我们在设计高性能的web系统时的一些思考进行更形式化的描述。
1. 并发定理
一个系统的并发度等于请求处理耗时与系统的吞吐量的乘积
并发度: 一个系统在同时处理的请求个数。
请求处理耗时: 一个请求从进入系统处理到处理完毕经过的时间。
吞吐量: 系统在现有资源情况下单位时间中(每秒)能完成的请求数。
证明:
我们假设一个简单的情况,即每一个请求都是完全一样的,耗时也都一样,在实际系统中各项性能度量值都是不同且不断变化的,我们这个假设反映了系统的一种平均情况。
设并发度的值为Curr,请求处理耗时为Cost,吞吐量的值为QPS。
设单位时间进入系统处理阶段的请求数为N1, 单位时间系统能够完成的请求数为N2,根据吞吐量定义,N2即系统吞吐量。
在系统中N1是无法大于N2的值的, 不能处理而放在某种外部队列中的请求我们不认为其进入了处理阶段, 即进入系统请求的最大速率也等于吞吐量的值,即有N1=N2=QPS。
在某个时间点t, 它有多少正在处理的请求呢,这代表了Curr的值,它的值等于已到达系统的请求数减去已结束的请求数。
到达的请求数等于时长乘以请求到达速率,即:
到达的请求数 = t*N1 = t*N2= t*QPS
已结束的请求数应该是在t-Cost时间点之前就已经到达的请求数, 很好理解