PV计算模型
为了让性能测试的PV计算更接近生产线真实情况,利用现有最新的数据得出性能测试PV的计算公式。
首先,通过http://monitor.taobao.com采集现有数据,图10所示的是任意选择一天得到的分布图, 6:00AM到次日的6:00AM,共24小时。 10
TAOBAO PERF-TEST
淘宝性能测试团队 淘宝性能测试白皮书
图10
经过长期监控,发现任何一天的分布图都与上图类似,故将这种分布视为整个淘宝网的浏览量分布。
其次,进行数据统计:为了和目前真实情况更接近,选择最近一段时间的数据分布来做样本,记录下系统能够监控到的最短时间间隔的数据,考察其值的走势,并且找出每一天的最大值,抽样出每个时刻的值与当天最大值的比例,以此比例值的趋势,得出数据分布趋势,如图11所示。
监控系统最精确可以采集到每3分钟的数据,一天24小时可以采集到480个点。 00.20.40.60.81
图11
采用微积分思想,将每个时间点视为一个矩形,可以通过求和的方式求出整个分布图的面积,如图12所示。 00.10.20.30.40.50.60.70.80.91 11
TAOBAO PERF-TEST
淘宝性能测试团队 淘宝性能测试白皮书
图12
根据80/20原理,找出占据总体面积80%所用的时间,再计算出平均PV量。选择尽可能大的点计算出占据总体80%的面积,发现点的个数是240,那么意味着此时间长度为总时间长度的50%,则80/20原则在此可以转换成80/50原则,则有
每台服务器每秒平均PV量 = (80%*总PV)/(24*60*60*(240/480))/服务器数量
整理后得 每台服务器每秒平均PV量 = (1.6*总PV)/ (24*60*60) /服务器数量
进而计算出占总面积80%的PV平均值与整个图中的最高峰值的比,可以得出最高峰的PV量是1.2倍的平均PV量。
即 每台服务器每秒高峰PV量 = (1.2*1.6*总PV)/(24*60*60) /服务器数量
整理后得 每台服务器每秒高峰PV量= (1.92*总PV)/(24*60*60) /服务器数量
PV->TPS转换模型
为了使PV在性能测试环境下可量化,根据PV的概念,通过以下方式将其转换成TPS。
1.
性能测试脚本中,只保留与性能点相关的内容,异步处理的,保留多个请求,从而确保压力目标。
2.
在执行场景中,不模拟浏览器缓存,确保每次请求都到达应用服务器,使得LoadRunner的一个请求等同于一个PV。
3.
在执行场景中,每次迭代,都模拟一个新用户,而且清除用户缓存信息,确保每个用户每次发送请求都是全新的。
结论:通过以上三步,将PV转化成性能测试工具可识别的TPS。换言之,1PV=1TPS
为了让性能测试的PV计算更接近生产线真实情况,利用现有最新的数据得出性能测试PV的计算公式。
首先,通过http://monitor.taobao.com采集现有数据,图10所示的是任意选择一天得到的分布图, 6:00AM到次日的6:00AM,共24小时。 10
TAOBAO PERF-TEST
淘宝性能测试团队 淘宝性能测试白皮书
图10
经过长期监控,发现任何一天的分布图都与上图类似,故将这种分布视为整个淘宝网的浏览量分布。
其次,进行数据统计:为了和目前真实情况更接近,选择最近一段时间的数据分布来做样本,记录下系统能够监控到的最短时间间隔的数据,考察其值的走势,并且找出每一天的最大值,抽样出每个时刻的值与当天最大值的比例,以此比例值的趋势,得出数据分布趋势,如图11所示。
监控系统最精确可以采集到每3分钟的数据,一天24小时可以采集到480个点。 00.20.40.60.81
图11
采用微积分思想,将每个时间点视为一个矩形,可以通过求和的方式求出整个分布图的面积,如图12所示。 00.10.20.30.40.50.60.70.80.91 11
TAOBAO PERF-TEST
淘宝性能测试团队 淘宝性能测试白皮书
图12
根据80/20原理,找出占据总体面积80%所用的时间,再计算出平均PV量。选择尽可能大的点计算出占据总体80%的面积,发现点的个数是240,那么意味着此时间长度为总时间长度的50%,则80/20原则在此可以转换成80/50原则,则有
每台服务器每秒平均PV量 = (80%*总PV)/(24*60*60*(240/480))/服务器数量
整理后得 每台服务器每秒平均PV量 = (1.6*总PV)/ (24*60*60) /服务器数量
进而计算出占总面积80%的PV平均值与整个图中的最高峰值的比,可以得出最高峰的PV量是1.2倍的平均PV量。
即 每台服务器每秒高峰PV量 = (1.2*1.6*总PV)/(24*60*60) /服务器数量
整理后得 每台服务器每秒高峰PV量= (1.92*总PV)/(24*60*60) /服务器数量
PV->TPS转换模型
为了使PV在性能测试环境下可量化,根据PV的概念,通过以下方式将其转换成TPS。
1.
性能测试脚本中,只保留与性能点相关的内容,异步处理的,保留多个请求,从而确保压力目标。
2.
在执行场景中,不模拟浏览器缓存,确保每次请求都到达应用服务器,使得LoadRunner的一个请求等同于一个PV。
3.
在执行场景中,每次迭代,都模拟一个新用户,而且清除用户缓存信息,确保每个用户每次发送请求都是全新的。
结论:通过以上三步,将PV转化成性能测试工具可识别的TPS。换言之,1PV=1TPS