一个web请求的通常步骤web
Web性能测试的部分概况通常来讲,一个Web请求的处理包括如下步骤:
服务器
客户发送请求 网络
web server接受到请求,进行处理; 并发
web server向DB/cache获取数据; 工具
webserver生成用户的object(页面),返回给用户。给客户发送请求开始到最后一个字节的时间称为响应时间(第三步不包括在每次请求处理中)。 性能
服务器计算
服务器数量 = ceil( 天天总PV / 单台服务器天天总PV )测试
原理:天天80%的访问集中在20%的时间里,这20%时间叫作峰值时间
公式:( 总PV数 * 80% ) / ( 天天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 须要的机器spa
问:天天300w PV 的在单台机器上,这台机器须要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)orm
问:若是一台机器的QPS是58,须要几台机器来支持?
答:139 / 58 = 3问:若是一台机器的QPS是58,须要几台机器来支持?
答:139 / 58 = 3server
问:若是一台机器的QPS是58,须要几台机器来支持?
答:139 / 58 = 3
问:若是一台机器的QPS是58,须要几台机器来支持?
答:139 / 58 = 3
压测时时刻关注本身的请求是否真正的压测到了,这时须要本身模拟单个请求的时候跟踪下数据流向,是否达到了测试的目的;
在点对点压测的时候,时刻注意本身是否配置的host合适;
针对一些异常的结果,要有本身的分析和判断,不要随便把结果归结为工具误报
相关名词解释
一、事务(Transaction)
在web性能测试中,一个事务表示一个“从用户发送请求->web server接受到请求,进行处理-> web server向DB获取数据->生成用户的object(页面),返回给用户”的过程,通常的响应时间都是针对事务而言的。
二、请求响应时间
请求响应时间指的是从客户端发起的一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间,在某些工具中,响应一般会称为“TTLB”,即"time to last byte",意思是从发起一个请求开始,到客户端接收到最后一个字节的响应所耗费的时间,响应时间的单位通常为“秒”或者“毫秒”。一个公式能够表示:响应时间=网络响应时间+应用程序响应时间。
为了排除网络延时干扰测试结果,通常来讲咱们作性能测试时都是选择同机房下的2台,分别为客户端(能够适当增长客户端机器数量)和服务端,来进行压力测试。通常咱们认为,请求平均耗时不超过200ms、90%的请求的处理时间在200ms如下、失败请求数不超过1%、服务端cpu消耗不超过80%,则认为该接口性能良好。
三、事务响应时间
事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出的.例如:跨行取款事务的响应时间就是由一系列的请求组成的.事务响应时间是直接衡量系统性能的参数.
4.并发用户数
并发通常分为2种状况。一种是严格意义上的并发,即全部的用户在同一时刻作同一件事情或者操做,这种操做通常指作同一类型的业务。好比在信用卡审批业务中,必定数目的拥护在同一时刻对已经完成的审批业务进行提交;还有一种特例,即全部用户进行彻底同样的操做,例如在信用卡审批业务中,全部的用户能够一块儿申请业务,或者修改同一条记录。
另一种并发是广义范围的并发。这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操做,可是这些请求或者操做能够是相同的,也能够是不一样的。对整个系统而言,仍然是有不少用户同时对系统进行操做,所以也属于并发的范畴。
能够看出,后一种并发是包含前一种并发的。并且后一种并发更接近用户的实际使用状况,所以对于大多数的系统,只有数量不多的用户进行“严格意义上的并发”。对于WEB性能测试而言,这2种并发状况通常都须要进行测试,一般作法是先进行严格意义上的并发测试。严格意义上的用户并发通常发生在使用比较频繁的模块中,尽管发生的几率不是很大,可是一旦发生性能问题,后果极可能是致命的。严格意义上的并发测试每每和功能测试关联起来,由于并发功能遇到异常一般都是程序问题,这种测试也是健壮性和稳定性测试的一部分。
用户并发数量:关于用户并发的数量,有2种常见的错误观点。 一种错误观点是把并发用户数量理解为使用系统的所有用户的数量,理由是这些用户可能同时使用系统;还有一种比较接近正确的观点是把在线用户数量理解为并发用户数量。实际上在线用户也不必定会和其余用户发生并发,例如正在浏览网页的用户,对服务器没有任何影响,可是,在线用户数量是计算并发用户数量的主要依据之一。
5.吞吐量
指的是在一次性能测试过程当中网络上传输的数据量的总和.吞吐量/传输时间,就是吞吐率.
六、TPS(transactionper second)即QPS
每秒钟系统可以处理的交易或者事务的数量.它是衡量系统处理能力的重要指标.
QPS = req/sec = 请求数/秒
【QPS计算PV和机器的方式】
QPS统计方式 [通常使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数
【单台服务器天天PV计算】
公式1:天天总PV = QPS * 3600 * 6
公式2:天天总PV = QPS * 3600 * 8
服务器计算
服务器数量 = ceil( 天天总PV / 单台服务器天天总PV )
【峰值QPS和机器计算公式】
原理:天天80%的访问集中在20%的时间里,这20%时间叫作峰值时间
公式:( 总PV数 * 80% ) / ( 天天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 须要的机器
问:天天300w PV 的在单台机器上,这台机器须要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
问:若是一台机器的QPS是58,须要几台机器来支持?
答:139 / 58 = 3
注意的问题点
压测时时刻关注本身的请求是否真正的压测到了,这时须要本身模拟单个请求的时候跟踪下数据流向,是否达到了测试的目的;
在点对点压测的时候,时刻注意本身是否配置的host合适;
针对一些异常的结果,要有本身的分析和判断,不要随便把结果归结为工具误报