常用系统性能估算方法

由于在信息化系统设计阶段会经常遇到系统配置多少服务器的问题,在此提供常用的服务器性能估算方式。

平均并发用户数

$$C = nL/T$$

其中

C:平均的并发用户数;

n:平均每天访问用户数(login session的数量);

L:一天内用户从登录到退出的平均时间(login session的平均长度);

T:考察的时间段长度(一天内多长时间有用户使用系统);

并发用户数峰值:

$$C’≈C+3\sqrt[]{C}$$

其中

C:公式1中的平均并发用户数;

请求数计算公式:

$$R = T / TS$$

其中

R:每个虚拟用户发出的请求数;

T:性能测试所用的时间;

TS:思考时间;

吞吐量计算公式

$$F=VU\times R / T$$

其中

F:吞吐量;

VU:虚拟用户个数;

R:每个虚拟用户发出的请求数;

T:性能测试所用的时间;

TPS计算公式

$$TPS = 并发数/平均响应时间$$

在现实世界里,登陆的用户是按照以下的方式运作的:

  1. 沉睡状态 – 在非工作时间不登陆;
  2. 片刻状态(上升) – 开始工作的时候,人们开始登录系统;在线的数量不断增加;
  3. 稳定期 – 在线的用户数保持稳定;
  4. 片刻状态(回落) – 工作时间结束;人们退出系统;在线人数减少;

这四个状态周而复始。

我们要更精确预估高峰期并发用户数,应该遵循下面的步骤:

  1. 根据经验来估计稳定期的时间段;
  2. 估计在稳定期的登录用户数;
  3. 根据公式计算平均并发用户数;
  4. 运用公式计算高峰并发用户数;

例子:

市政府准备为了其170000名员工运行一个薪酬系统,员工可以通过此系统查询自己的薪酬信息。由于IT技能的差异、电脑的资源有限以及其他种种的原因,预计到系统上线只有50%的员工会定期使用该系统。这些员工中的70%会在每个月的最后一周使用系统一次。据观测,参与了用户接受度测试的员工们平均使用这个系统的时间是5分钟。

n = 1700000.50.7/5 = 11900

L = 5分钟

T = 8小时 = 480分钟

平均并发用户数:

$$C = nL/T = 11900\times 5/480 = 124$$

补充条件:
假设80%的员工进入薪酬系统的时间是上午9:30到12:30以及下午2:30到4:30这5个小时,尽管一天工作时间是8小时,并且在这5小时之间登录数保持稳定。

T = 5小时 = 300分钟

n = 11900*0.8 = 9520

L = 5分钟

平均并发用户数:

$$C = nL/T = 9520\times 5/300 = 159$$

高峰并发用户数:
$$C’≈C+3\times \sqrt[]{C} = 196$$