RT(response time)
什么是RT? RT就是指系统在接收到请求和做出相应这段时间跨度
但是值得一提的是RT的值越高,并不真的就能说明我们的系统的吞吐量就很高, 比如说,如果存在数据在网络中传输时出现了丢包的现象,传输的数据少了,速度就会增加, 但是这是事故,不是说我们的系统吞吐量高
此外,对不同的系统来说衡量的标准也不一样,对一个游戏软件来说,响应时间也就是常说的延迟. 在100ms以内,游戏体验感会很好,飙升到几秒钟,干脆就不要玩了, 但是对一个编译系统来说,编译一套源代码可能好几十分钟,人们也愿意等
java应用程序中的GC也会导致系统的总体RT飙升
Throughput 吞吐量
什么是吐吞量呢? 百度百科: 广义的吞吐量是: 单位时间内成功的传输数据的数量, 在我们进行压力测试得出的结果中, 可以将吞吐量理解成系统在单位时间内成功处理的请求的数量
一个系统的吞吐量和request对CPU的消耗,外部的接口以及IO等因素紧密相关,
比如一个web应用代码写的再漂亮,但是每次请求都会去查询数据库,并发数上来后,数据库就会占用大量的CPU负载,系统的IO飙升,甚至可能导致其他软件不得不等待mysql先执行完才能抢到CPU的时间分片. 系统的瓶颈积压到mysql这里,这个web应用的吞吐量一定不会很高
此外,一般我们都是这样描述吞吐量: 在并发数为xxx时,系统的吐吞量为yyy
并发用户数
它指的是系统可以承载的, 可以同时正常使用网站的用户数量, 这个指标似乎看起来可以比吞吐量更加直观反应系统的性能, 但是往往系统中的用户又有不同的行为, 比如未注册的, 在线的, 同时发送请求的等等, 简而言之, 可以考虑用在线的用户和同时发送请求的用户数作为性能指标, 把在线的用户当成性能指标更直观, 把同时发送请求的用户数量当成性能指标更准确
QPS (query per seconds)
每秒的查询率, 用来权衡服务器在规定的时间内处理的流量数
计算公式: QPS = req / sec , 即平均每秒的请求量
TPS (transition per seconds)
TPS (transaction per second)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如,用户每分钟执行6个事务,TPS为6 / 60s = 0.10 TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒。
PV和UV
PV访问量 (Page View) 每打开一次页面或者刷新一次页面 pv+1, 它反应的的网站的页面被访问的次数
UV访问数(Unique Visitor) 即, 独立访客的访问数, 换句话就是一台电脑算一个访客,
通过QPS估算PV
公式1 :
QPS = 总pv数*0.8 / 每天的秒数*0.2
公式2:
pv = QPS*3600*8
根据QPS,PV估算服务器的数量
服务器的数量= 每天的总PV / 单台服务器的PV
原理: 每天80%的访问集中在了当前的20%的时间段, 这20%的时间就叫做峰值时间
峰值时间段
pv = 总pv数*0.8 / 每天的秒数*0.2
聚合报告:
主要是查看请求的响应时间,错误率,每秒并发等
参数说明:单位为毫秒
Label:定义HTTP请求名称
Samples:表示这次测试中发出了多少个请求
Average:平均响应时长——默认情况下是单个request的平均响应时长
Median:中位数,也就是50%用户的响应时长
90% Line:90%用户的响应时长
Min:访问页面的最小响应时长
Max:访问页面的最大响应时长
Error%:错误请求的数量/请求的总数
Throughput:默认情况下表示每秒完成的请求数(request per second)
KB/Sec:每秒从服务器端接收到的数据量