网站性能测试基本概念

注:引用李智慧教授的架构核心原理书籍;若有不足地方欢迎指出

一 系统性能测试的指标

 1:响应时间  及一个操作到返回的时间;包括从发出请求开始到收到最后响应数据所需要的时间;这个指标直接放映了系统的反应的快慢。

 2:并发数 指的是系统同时处理请求的数目,这个数字放映了系统的负载特性。

 3:吞吐量  指的是单位时间内系统处理的请求数;体现系统的整体处理能力,常用的指标有请求数/秒或者页面数/秒,但一般常用tps及每秒事物数;系统并发数由小变大的过程中,系统的吞吐量先是逐渐增大,当达到一个极限值后,吞吐量就会随着并发数的增加而减小,当达到吞吐量极限后系统崩溃点。

 4: 性能计算器 包括system Load(即系统负载,表示正在被cpu执行的线程数和等待被cpu执行的线程数),机器的CUP使用,内存使用,对象线程数,磁盘与网络的IO;对这些指标设置报警阀值;

二:性能测试的细化

 性能测试是个总称,具体细化是性能测试,负载测试,压力测试,稳定测试。发

 1:性能测试 以系统规划前的性能指标为预期指标,对系统不断施压压力,验证在资源范围内是否达到预期效果;

2:负载测试 对系统不断施压,其各项指标达到安全值临界点

3:压力测试 对系统不断施压,直到系统崩溃

4:稳定测试 在不同的生产环境,不同的时间点,压力不均匀等条件下测试系统;


三 性能优化策略

1:前端优化   减小http请求,使用缓存,使用异步,反向代理

2: 服务端优化

 a: 分布式缓存 主要存放那些读写比很高,很少变化的数据;应用程序一般读取数据先到缓存中读取,如果读取不到或者

数据已经失效,再到数据库中读取;对于使用缓存要注意下面几点:

频繁修改的数据;对于频繁修改的数据最好不好用缓存,如果保存的是频繁修改的数据,就会出现

数据写入缓存后,应有服务还来不及读取,数据就已经失效的情景,徒增系统负担,一般来说,数据的读写比在2:1以上,即写入

一次缓存,在数据更新前至少读取两次,缓存才有有意义;

 没有热点数据 : 内存资源宝贵而有限,不可能把所以的数据都缓存起来,只有将最新访问的数据缓存起来;如果

数据不遵守二八定律,即大部分数据访问并没有集中在小部分数据中;利用缓存就没有意义了。

数据不一致和脏读:一般会对缓存的数据设置失效时间,一旦超过失效时间,就会从数据库中重新加载,因此应用要容忍一定

时间的数据不一致,如卖家已经编辑了商品属性,但需要经过一段时间才能看到;有一种策略是数据更新时候立即更新缓存,不过会带来

更过的业务开销;

缓存预热:缓存中存放的是热点数据,就是启动的时候先把热点数据加载好;

缓存穿透:以为不恰当的业务,所有的请求都落在了数据库中,对数据库造成很大的压力

b: 采用异步操作

使用消息队列将调用异步化, 在不使用消息队列的情况下,用户的请求直接写入数据库,在高并发的情况下会对数据库造成巨大的压力

同时也是用相应延迟加据;再使用消息队列后,用户的请求数据发送给消息队列后立即返回,再由消息队列的消费者进程写入到消息队列中

C: 使用集群 :采用集群分发q请求

d: 代码优化

 1:多线程 多用户并发访问网站可以采用多线程,多线程的优点比进程更轻,更少的占用系统资源,切换代价少;对于

线程启动个数一般考虑cpu核数和io阻塞时间,与cpu核数成正比,与io堵塞时间成反比;如果是计算型任务,那么线程数

最多不要超过cpu核数,因为启动多线程,CPU也来不及调度;相反如果任务是等待磁盘操作,网络相应,那么多启动线程

有助于提高任务并发度;

2:资源复用 系统运行时候,要尽量减少那些开销很大的资源的创建和销毁;比如数据连接,网络通信连接,复杂对象;从

编程角度,资源复用主要有两种模式:单例模式和对象池

3:数据结构

4:垃圾回收

3 存储性能优化

 机械硬盘和固态硬盘







  


 

       

   

 

网站性能测试用例 某网站提供会员模板下载、上传、购买、支付等功能,目前进入性能测试阶段,通过性能需求可以了解到主要有以下几个性能指标需要进行测试:   ● 产品页面刷新性能   ● 产品上传性能   ● 产品下载性能   目前给出的指标为:   延迟:   测试项 响应时间 抖动 备注   产品页面刷新 <5秒 <2秒   产品下载相应时间 <4秒 <2秒   吞吐量:   编号 项 吞吐量   Perf.T.1 所有登录用户在线状态更改频率 每10分钟1次   Perf.T.2 每日页面平均访问量 60000次   Perf.T.3 每日下载量 50000   Perf.T.4 平均每日新增会员数量 500   Perf.T.5 高峰同一模板下载量 100用户并发下载   Perf.T.6 高峰不同模板下载量 150用户并发下载   容量:   编号 项 容量   Perf.C.1 用户数 <=100万   Perf.C.2 活动用户数 10000   Perf.C.3 模板中心总用户数 <=25万   根据如上性能需求及数据我们该如何设计性能测试用例及场景呢?(可以说给出的性能需求很垃圾,没有丝毫价值,但没办法还是点做啊)   首先,我不去在乎它要求的性能是什么,我只需要去做在一定的测试环境下对系统进行压力测试,找到各个性能指标的临界点就好了,至于是否达到性能指标,在和性能需求对照编写测试报告即可。   所以,针对这几个需要进行性能测试的页面,我们做一下分析,如何设计场景才能尽可能准确地体现出系统的性能:   先说一下搜索页面   搜索页面根据对项目的了解,搜索后,将所有符合条件的结果遍历出来,显示在前台,每页的显示数量是一定的,超出的部分分页显示。根据上面的描述我们可以看出搜索结果是在将符合条件的所有结果集均发送到前台页面,对于页面显示对性能的消耗我们可以忽略不计,主要的压力来自数据的传输、sql的执行及应用服务器的处理过程,所以我可以从两个方面设计场景:   a、虚拟用户一定,不同数据库数量级的情况下,搜索的性能   如何确定虚拟用户的数量成为一个关键,我们可以让客户提供一个常规情况下每天访问用户数(如果没有实际数据可参考,可以根据产品方案中期望的用户数来代替),我们就用这个用户数来进行测试;再来分析一下不同的数据库数量级,如果系统运营1年的产品数据量是5万条,那么我们就根据这个值分别取1W条、3W 条、5W条、10W条、20W条数据量来进行测试(具体的分法可以根据实际情况而定),所以对于这个测试目标,我们可以设计5个场景进行:   虚拟用户数 数据库数量级 录制页面 并发用户数执行时间思考时间   100 10000 搜索页面 随机产生 30分钟 加入思考时间   100 30000 搜索页面 随机产生 30分钟 加入思考时间   100 50000 搜索页面 随机产生 30分钟 加入思考时间   100 100000 搜索页面 随机产生 30分钟 加入思考时间   100 200000 搜索页面 随机产生 30分钟 加入思考时间   b、一定数据库数量级,不同量虚拟用户的情况下,搜索的性能   我们定下来一个常规的数据库数据量,在数据量不变的情况下逐步增加虚拟用户数,测试一下不同虚拟用户压力下系统的性能   虚拟用户数 数据库数量级 录制页面 并发用户数执行时间思考时间   50 50000 搜索页面 随机产生 30分钟 加入思考时间   80 50000 搜索页面 随机产生 30分钟 加入思考时间   100 50000 搜索页面 随机产生 30分钟 加入思考时间   120 50000 搜索页面 随机产生 30分钟 加入思考时间   150 50000 搜索页面 随机产生 30分钟 加入思考时间   产品上传   影响上传性能的主要因素有上传文件的大小和上传的请求数,所以我们就从这两个方面设计用例。   a、虚拟用户数一定,上传不同大小的文件   虚拟用户数 上传文件大小 录制页面 并发用户数 执行时间 思考时间   50 100k 上传页面 随机产生 30分钟 取消思考时间   50 300k 上传页面 随机产生 30分钟 取消思考时间   50 500k 上传页面 随机产生 30分钟 取消思考时间   50 800k 上传页面 随机产生 30分钟 取消思考时间   50 1M 上传页面 随机产生 30分钟 取消思考时间   b、上传文件大小一定,不同量的虚拟用户   虚拟用户数 上传文件大小 录制页面 并发用户数执行时间思考时间   20 300k 上传页面 随机产生 30分钟 取消思考时间   50 300k 上传页面 随机产生 30分钟 取消思考时间   80 300k 上传页面 随机产生 30分钟 取消思考时间   100 300k 上传页面 随机产生 30分钟 取消思考时间   产品下载   影响下载性能的主要因素有下载文件的大小和下载的请求数,所以我们就从这两个方面设计用例   a、虚拟用户数一定,下载不同大小的文件   虚拟用户数 下载文件大小 录制页面 并发用户数执行时间思考时间   50 100k 下载页面 随机产生 30分钟 取消思考时间   50 300k 下载页面 随机产生 30分钟 取消思考时间   50 500k 下载页面 随机产生 30分钟 取消思考时间   50 800k 下载页面 随机产生 30分钟 取消思考时间   50 1M 下载页面 随机产生 30分钟 取消思考时间   b、下载文件大小一定,不同量的虚拟用户   虚拟用户数 下载文件大小 录制页面 并发用户数 执行时间 思考时间   20 300k 下载页面 随机产生 30分钟 取消思考时间   50 300k 下载页面 随机产生 30分钟 取消思考时间   80 300k 下载页面 随机产生 30分钟 取消思考时间   100 300k 下载页面 随机产生 30分钟 取消思考时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值