一、在线用户数

在线用户数指的是登录系统的用户,也就是系统的在线数量,包括正在系统上处理业务的用户和挂机的用户

二、并发用户数

在很多人的理解中,认为并发用户数为压力机发起的线程数,然而并不是这样,当压力机同时发起 20 个线程,那实际到达服务端的并不是 20 个线程,因为从压力机到服务端这中间存在网络传输,硬件资源配置等情况导致将少于 20 个线程,在性能测试中,并发往往用 TPS 来描述,如:并发数为 20TPS,就是 1S 内系统处理了 20 个事务,是服务端实际处理的事务数量

三、在线用户数和并发用户数的计算

对于一个系统来说,在线用户数是可以统计出来的,对于同一段时间内系统处理业务的数量也是可以统计出来的,进而可以算出某个时间段内的系统的 TPS,假如系统的 TPS 是 100,在线用户数是 1000,可以理解为现在我们系统有 1000 个用户在线,但是系统正在处理的事务只有 100 个,那么可以计算出系统的并发度:100/1000=10%,那么在测试性能的时候,如何确定需要多少个线程呢,首先假设每个线程产生的 TPS 是 20 个,由于并发是 100,所以线程只需要 5 个就够了

四、TPS 的计算

假设:一个用户操作一个流程花费 200s,总共涉及到了 100 个请求,分为 7 个操作,那 TPS 该如何计算

  1. 如果设置每个请求为一个事务,则 TPS:

1x100/200=0.5,其中 1 表示一个用户,100 表示 100 个请求,200 表示整个流程花费的时间,结果 0.5 表示的就是该事务的 TPS

  1. 如果设置每个业务操作为一个事务,则 TPS:

1x7/200=0.035,其中 1 表示一个用户,7 表示 7 个业务操作,但是每个业务操作的请求数并不一致,200 表示操作 7 个业务花费的时间,结果 0.035 表示该事务的 TPS

  1. 如果设置每个用户操作为一个事务,则 TPS:

1x1/200=0.005,其中第一个 1 表示的是一个用户,第二个 1 表示的是用户级别的事务,200 表示操作整个用户级事务花费的时间,结果 0.005 表示该事务的 TPS

由此可见:当设置事务为不同级别的时候,所计算出来的 TPS 也是不同的

五、如何确定压力机需要多少线程

压力机的线程和 TPS 以及在线用户数是有关系的,当在线用户数和 TPS 确定后,就可以确定需要多少个线程了,假如要模拟 10 万用户在线,而一个压力线下的 TPS 是 200,则压机机线程=10 万/200=500 个。


↙↙↙阅读原文可查看相关链接,并与作者交流