《淘宝性能测试白皮书V0.3》
http://wenku.baidu.com/view/924afe2d2af90242a895e541.html
性能测试的难点不在于测,在于测出的数据和实际的对照关系,以及测试出来的数据对性能的评估(到底是好,还是不好)。
淘宝性能测试白皮书,解决了我的4个问题:1、PV到TPS的转换关系。2、TPS的波动标准。3、压力变化以及测试类型。4、网页测试的标准(可惜很多数据都抹掉了)
1、PV到TPS的转换
日PV对于一个网站,很容易就统计出来,但是LoadRunner性能测试时,只有TPS可供参考。日PV和TPS之间如何对应?公式就是80%的日PV,发生在T小时内。则公式为:
TPS = 日PV * 80% / 24 * 60 * 60 * (T/24)
定义 R = 1万 * 80% / 24 * 60 * 60 * (T/24) = 10000 * 24 * 0.8 / 24 * 3600 * T = 2.2222/T
TPS = 日PV(万) * R 这里的TPS就是平均的TPS。
可以T的值代入,则求出R的值即可
T 6 8 10 12
R 0.3704 0.2778 0.2222 0.1852
10w 3.704 2.778 2.222 1.852
100w 37.04 27.78 22.22 18.52
1000w 370.4 277.8 222.2 185.2
1亿 3704 2778 2222 1852
关于TPS 我再多说两句,单就静态页面,TPS大概能到1W+,简单数据库操作大概2K+的样子,用Cache大概能到5K+。
峰值的TPS,可以从图中看出来。
2、TPS的波动标准
TPS应该是一个比较平稳的曲线,而不是上下波动
TPS波动范围 = TPS标准差/TPS平均值 * 100%
在5%内算是正常的
3、测试压力变化
pdf中的图1-8
a点:性能期望值
b点:高于期望,系统资源处于临界点
c点:高于期望,拐点
d点:超过负载,系统崩溃
性能测试
a点到b点之间的系统性能
定义:狭义的性能测试,是指以性能预期目标为前提,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。
负载测试
b点的系统性能
定义:狭义的负载测试,是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到极限,例如某种资源已经达到饱和状态等。
压力测试
b点到d点之间
定义:狭义的压力测试,是指超过安全负载的情况下,对系统不断施加压力,是通过确定一个系统的瓶颈或不能接收用户请求的性能点,来获得系统能提供的最大服务级别的测试。
稳定性测试
a点到b点之间
定义:狭义的稳定性测试,是指被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,一般稳定性测试时间为n*12小时。
4、网站测试标准
==========================================================================
性能相关的系列文章:
LoadRunner利用ODBC编写MySql脚本
LoadRunner压力测试时监控服务器Linux的资源情况
压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate
高性能服务器架构(High-Performance Server Architecture)
网站性能测试PV到TPS的转换以及TPS的波动
用GTmetrix来优化你的网页(集成了YSlow、FireBug的功能)
Q&A
因为CSDN评论不知道为什么没法用了,所以贴在这里吧
Q:yxt168118 能否请作者将TPS的T,在测试脚本中,怎么定义说明一下?我是将某个关键操作定义为一个事务(T),这样测试出来的TPS很难达到10。
A:回复 yxt168118:定义T transaction 事务,是根据测试目的来决定的,如果是性能测试,T定义为一次请求,如果是可用性测试,T定义为整个页面的加载,主要看响应时间用户是否能接受。TPS高低和操作的复杂程度、以及后台扩展、以及T的定义是相关的。一般,单次的请求,单台机器,百数量级上是正常的。另外,在一次请求中,不要每次都去初始化一些比如用户等数据,如果有很多的数据库操作,TPS也会低一些,如果达不到10,还需要优化,比如看看数据库方面是否有优化的空间,比如索引。