性能测试理论知识

来源:互联网 发布:无网络的手机txt阅读器 编辑:程序博客网 时间:2024/06/06 04:55

一、性能测试分类

1、 负载测试load testing:测试系统能达到的峰值指标;

2、 压力测试stress testing:强调在极端条件下系统的稳定性,确定什么条件下系统性能处于失效状态;

3、 容量测试volume testing:数据库最佳容量、最大容量,服务器连接能力等;

4、 配置测试configuration testing:获得不同配置下的性能指标;

5、 基准测试benchmark testing:基于配置测试的调优测试;

6、 并发测试concurrency testing


备注:负载测试、压力测试的区别,举例“

百度查询的响应时间不超过5秒。
    负载测试:确认当查询的响应时间不超过5秒时,系统支持的最大并发用户数;
    压力测试:确认当系统的最大并发用户数超过多少时,查询的响应时间不可接受(如1分钟)


二、性能测试指标

1、 响应时间:通过事务函数来统计响应时间

2、 吞吐量TPS transaction per second:每秒处理事务/请求/单位数据的数量

3、服务器资源占用:cpu占用率、内存使用率、查询Cache命中率

4、点击数:向webservice发起的http请求书(鼠标点击一次可发多个请求)

三、怎样定性能指标

http://my.oschina.net/dlpinghailinfeng/blog/186161

1、80~20原理:每个工作日中80%业务在20%的时间内完成

2、  估算并发数的公示:

  (1) 计算平均的并发用户数: C = nL/T

  (2) 并发用户数峰值: C’ ≈ C+3根号C

  公式(1)中,C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度

泊松分布估算系统的性能目标

一般的做法是把每天访问系统用户数的10%作为平均的并发用户数。最大的并发用户数乘上一个值,2或者3
3、响应时间:

在互联网上对于用户响应时间,有一个普遍的标准。2/5/10秒原则。  也就是说,在2秒之内给客户响应被用户认为是“非常有吸引力”的用户体验。在5秒之内响应客户被认为“比较不错”的用户体验,在10秒内给用户响应被认为“糟糕”的用户体验。如果超过10秒还没有得到响应,那么大多用户会认为这次请求是失败的

另:标准可参考国外的3/5/10原则:

1)在3秒钟之内,页面给予用户响应并有所显示,可认为是“很不错的”;

2)在3~5秒钟内,页面给予用户响应并有所显示,可认为是“好的”;

3)在5~10秒钟内,页面给予用户响应并有所显示,可认为是“勉强接受的”;

4)超过10秒就让人有点不耐烦了,用户很可能不会继续等待下去;


4、资源利用率

指标

说明

ProcessorTime服务器CPU占用率,一般平均达到70%时,服务就接近饱和Memory Available Mbyte可用内存数,如果测试时发现内存有变化情况也要注意,如果是内存泄露则比较严重Physicsdisk Time物理磁盘读写时间情况

Web服务器指标

指标

说明

Requests Per Second(Avg Rps)平均每秒钟响应次数=总请求时间 / 秒数Avg time to last byte per terstion (mstes)平均每秒业务脚本的迭代次数 ,有人会把上面那个混淆Successful Rounds成功的请求Failed Requests失败的请求Successful Hits成功的点击次数Failed Hits失败的点击次数Hits Per Second每秒点击次数Successful Hits Per Second每秒成功的点击次数Failed Hits Per Second每秒失败的点击次数Attempted Connections尝试链接数

数据库服务器性能指标

指标

说明

User 0 Connections用户连接数,也就是数据库的连接数量Number of deadlocks数据库死锁Butter Cache hit数据库Cache的命中情况

系统的瓶颈定义

性能项

命令

指标

CPU限制vmstat当%user+%sys超过80%时磁盘I/O限制Vmstat当%iowait超过40%(AIX4.3.3或更高版本)时应用磁盘限制Iostat当%tm_act超过70%时虚存空间少Lsps,-a当分页空间的活动率超过70%时换页限制Iostat, stat虚存逻辑卷%tm_act超过I/O(iostat)的30%,激活的虚存率超过CPU数量(vmstat)的10倍时系统失效Vmstat, sar页交换增大、CPU等待并运行队列

  稳定系统的资源状态

性能项

资源

评价

CPU占用率70%好85%坏90%+很差磁盘I/0<30%好<40%坏<50%+很差网络<30%带宽好运行队列<2*CPU数量好内存没有页交换好每个CPU每秒10个页交换坏更多的页交换

很差


四、TPS、响应时间、吞吐量的理解

TPS是衡量服务处理能力的指标;
事务的概念是一个过程中各个环节组成的过程的整体;
用事务的概念来看TPS中的T,一次网络访问中从服务接收到请求(起),到服务完成响应(止)的整个过程就是一个事务;
在这个过程中,可能会包含很多环节,例如服务还需要从另外的数据库服务中获取数据,从其他中间件、网络中获取资源,服务内部的程序逻辑需要做数据处理、计算等等,但无论怎样,这些过程都会包含在请求和响应之间;
服务完成客户端的这样的一个过程就是完成一次事务,单位时间内(通常用秒)服务能完成多少个这样的事务就是TPS,就是衡量服务处理能力的指标。


响应时间可以理解为是用于衡量单次事务所花费的时间,但是也不绝对如此,不同的场景下也会用于衡量单次请求的时间……不论如何都是衡量都是统计单次的。既然是单次的这就有个问题,对于同一个过程,单次的时间也可能不同,所以响应时间又会衍生出最大响应时间,最小响应时间,平均响应时间,90%响应时间等等;

很多时候,吞吐量和TPS可以看做是等价的,都是单位时间里完成任务的数量。但在特定的场景的概念定义又会有些小差别。不同的工具的叫法也不同,Jmeter里就是吞吐量Throughput,貌似没有TPS。
很多概念背后的本质是相同的,只是定义得角度不同,关注得细节不同。山就是那座山,远看成岭侧成峰,人站的位置不同看到的景色也不同。

0 0
原创粉丝点击