QPS
每秒查询率(Query Per Second),每秒响应请求数
QPS = 完成Request量/所花时间(单位 Request/s)
吞吐量(Throughput)
吞吐量是指系统在单位时间内响应的数据量
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降
并发数
并发数是指系统同时处理的Request数,并发量值等于平均响应时间内完成的Request量
1 | 并发数 = QPS*平均响应时间 = (完成Requst量/所花时间) X 平均响应时间 |
一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统完成签到。公司员工为1000人,平均每个员上登录签到系统的时长为5分钟。可以用下面的方法计算:
QPS = 1000/(30*60) 事务/秒
平均响应时间为 = 5*60 秒
并发数= QPS平均响应时间 = 1000/(3060) (560)=166.7
峰值QPS
每天80%的访问集中在20%的时间里,这20%时间叫做峰值
1 | 峰值时间每秒请求数(QPS) = ( 总PV数 * 80% ) / ( 每天秒数 * 20% ) |
-
每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS) -
如果一台机器的QPS是58,需要几台机器来支持?
答:139 / 58 = 3
Apdex
性能指数Apdex(Application Performance Index)是一个国际通用标准,Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。Apdex标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化范围为0-1的满意度评价。
Apdex的原理
根据应用性能评估确定应用响应时间的最优门槛为Apdex阈值,然后根据应用实际响应时间结合Apdex阈值定义了三种不同的性能表现:
-
Satisfied(满意):应用响应时间低于或等于Apdex阈值。比如Apdex阈值为1.5s,则一个耗时1s的响应结果则可以认为是满意的。
-
Tolerating(可容忍):应用响应时间大于Apdex阈值,但同时小于或等于4倍的Apdex阈值。假设应用设定的Apdex阈值为1s,则4*1=4s为应用响应时间的容忍上限。
-
Frustrated(烦躁期):应用响应时间大于4倍的Apdex阈值。
如何计算Apdex
Apdex 对应用中发生的任务进行采样,并且按其响应时间把采样划分到相应的满意度区间,计数,再用一个公式计算 Apdex 指数:
0 代表没有满意用户,1则代表所有用户都满意。
总体来说,Apdex评分是一个衡量服务级别和用户满意度的重要标准,侧面衡量了企业业务的增长性。此外,这些值更容易解读,不像传统的平均响应时间和吞吐量的值,它们不能精确的解释执行缓慢的事务以及对用户满意度的影响。