TPS:每秒钟request/事务数
并发数: 系统同时处理的request/事务数
响应时间: 一般取平均响应时间
TPS = 并发数/平均响应时间
TPS
Ø 事务能力TPS(transaction persecond):服务器每秒处理的事务数。反应服务器处理能力,越高越好,越差不一定是服务器处理能力差,如也可能是内核参数没打开,限制能力。
响应时间
网络传输时间:N1+N2+N3+N4
应用服务器处理时间:A1+A3
数据库服务器处理时间:A2
响应时间=N1+N2+N3+N4+A1+A3+A2
Ø 理解为:响应时间=前端响应时间(页面渲染+展示时间)+后端响应时间。对于LR来说,响应时间针对后端响应时间
并发用户数
Ø 并发用户数:衡量并发用户数不能从业务角度出发,而是从服务端承受的能力出发,描述的是同时向客户端发出请求的客户,体现服务器承受的最大并发访问数;
Ø 不存在真正意义上的并发。例如当客户端发出100个请求后,到达服务器端不一定是同一个时间点到达,传输过程中肯定会有损耗
并发用户数的计算公式
系统用户数:系统额定的用户数量,如一个OA系统,可能使用该系统的用户总数是5000个,那么这个数量,就是系统用户数。
同时在线用户数:在一定的时间范围内,最大的同时在线用户数量。同时在线用户数=每秒请求数RPS(吞吐量)+并发连接数+平均用户思考时间
平均并发用户数的计算:C=nL / T
其中C是平均的并发用户数,n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)
并发用户数峰值计算:C^约等于C + 3*根号C
其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论。
吞吐量(Throughput)
Ø 吞吐量:指单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力。吞吐量一般作为协助性测试场景时是否达到了预期的设计目标的一个参考因素
从业务角度看,吞吐量可以用:请求数/秒、页面数/秒、人数/天或处理业务数/小时等单位来衡量
从网络角度看,吞吐量可以用:字节/秒来衡量
当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:F=VU * R /T
其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间
思考时间
Ø 从业务角度来说,思考时间是用户在进行操作中,每个请求之间的间隔时间
在吞吐量这个公式中F=VU * R / T说明吞吐量F是VU数量、每个用户发出的请求数R和时间T的函数,而其中的R又可以用时间T和用户思考时间TS来计算:R = T / TS
下面给出一个计算思考时间的一般步骤:
A、首先计算出系统的并发用户数
C=nL / T F=R×C
B、统计出系统平均的吞吐量
F=VU * R / T R×C = VU * R / T
C、统计出平均每个用户发出的请求数量
R=u*C*T/VU
D、根据公式计算出思考时间
TS=T/R
PV-pageview
Ø PV:即页面浏览量,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。
uv(unique visitor) :指访问某个站点或点击某条新闻的不同 IP 地址的人数。通过观察系统的访问日志发现,在用户量很大的情况下,各个时间周期内的同一时间段的访问流量几乎一样。比如工作日的每天早上。只要能拿到日流量图和QPS我们就可以推算日流量。
通常的技术方法:
1. 找出系统的最高TPS和日PV,这两个要素有相对比较稳定的关系(除了放假、季节性因素影响之外)
2. 通过压力测试或者经验预估,得出最高TPS,然后跟进1的关系,计算出系统最高的日吞吐量。
在淘宝环境下,假设我们压力测试出的TPS为100,那么这个系统的日吞吐量=100*11*3600=396万