转载声明:文章链接:https://blog.csdn.net/weixin_45812996/article/details/127062359
负载压力测试概述
简介: 是指在一定约束条件下测试系统所能承受的并发用户量,运行时间,数据量,以确定系统所能承受的最大负载压力
目的:
①在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况
②预见系统负载压力的承受力,在应用实际部署之前,评估系统性能
③分析系统瓶颈,优化系统
注: 因为性能瓶颈不好解决,而负载压力测试是性能测试的重要组成部分,所以开发过程中应尽可能早的进行负载压力测试
1,性能评测
性能评测是性能调优的基础
性能评测的主要内容是这两点:评估并报告整个系统的性能(尽量真实环境),对系统的未来容量做出预测和规划
性能调优的主要步骤有三,①查找形成系统瓶颈或故障的根本原因,②进行性能调整和优化,③评估性能调整的效果
负载压力测试的分类
负载测试:是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,即系统的某项或多项性能指标达到安全临界值,例如某种资源达到了饱和状态。
压力测试:是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态(tps/hps/响应时间超标),并以此来获取系统能提供的最大服务级别的测试。
注:负载测试和压力测试的区别是,负载测试处于性能指标安全值以内,如资源消耗在80%以内,web端页面响应时间在5s以内,而负载测试是处于性能指标安全值以外,如资源超过80%或web端页面响应时间在5s以外,且处以系统崩溃前或出错率超过1%等情况
并发性能测试 :是逐渐增加并发用户负载,直到系统的瓶颈或者不能接受的性能点,通过综合分析交易秩序指标,资源监控指标等来确定系统并发性能的过程
以上为负载压力测试中的重要角色,基于方案的考虑角度又分为:
①应用在客户端性能的测试
在客户端模拟大量并发用户执行不同业务操作,达到实施负载压力的目的
②应用在网络上的性能测试
分两部分:用网络故障分析,网络应用性能监控
③应用在服务器上的性能测试
监控的内容主要是操作系统,数据库以及中间件等
疲劳强度测试
通常采用系统稳定运行情况下能支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务数,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程。
疲劳强度模拟包括日常业务疲劳强度模拟(采用一天之中最繁忙的20%时间内的并发用户数),高峰业务疲劳强度模拟。
大数据量测试
独立数据量测试:针对某些系统存储、传输、统计、查询等业务进行的大数据量测试
综合数据量测试:指和压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试
负载压力测试计划
①需求分析中充分关注负载压力性能(主要焦点是系统中共享的和有限的资源进行需求分析)
②从设计中得到负载压力性能指标
③开发阶段创建一个负载压力性能测试环境
④验收阶段在多级范围内测试并调优
⑤运行阶段持续监控系统负载压力性能
负载压力测试相关指标
1,客户端交易处理指标
并发用用户数指标
交易处理指标
①平均事务响应时间
②每秒事务数
③每秒事务总数
④事务摘要
⑤事务性能摘要
⑥事务响应时间(负载下)
⑦事务响应时间(百分比)
⑧事务响应时间(分布)
Web请求指标
①平均事务响应时间
②点击次数摘要
④吞吐量
⑤吞吐量摘要
⑥连接数
⑦每秒连接数
⑧每秒SSL连接数
⑨Http状态代码摘要
⑩每秒Http响应数
①每秒下载页面数
②每秒重试次数
③每秒重试次数摘要
Web页面组件指标
①激活页面细分
②页面组件细分
③页面组件细分(随时间变化)
④页面下载时间细分
⑤页面下载时间细分(随时间变化)
⑥第一次缓冲细分时间
⑦第一次缓冲细分时间(随时间变化)
⑧已下载组件大小
2,服务器操作系统资源占用监控指标
CPU、内存、磁盘管理、交换区SWAP、
进程、安全控制、文件系统
3,数据库资源占用监控指标
①读写页面的使用情况
②超出共享内存缓冲区的操作数
③上一轮询期间作业等待缓冲区的时间
④ 共享内存中物理日志和逻辑日志的缓冲区的使用率
⑤磁盘的数据库使用情况以及被频繁读写的热点区域
⑥用户事务或者表空间事务
⑦数据库锁资源
⑧关键业务的数据表的空间增长
⑨SQL执行情况
4,中间件资源占用监控
以IIS为例
%File Cache Hits 静态网站:应保持80%
Web Service部分
Bytes total/sec
Connection Refused
NOT Found Errors
负载压力测试中的问题与分析
故障分析重点内容
①CPU问题
②内存和高速缓冲
③磁盘(I/O)资源问题
④配置参数
⑤应用系统网络设置
⑥数据库服务器故障定位
优化调整设置
CPU问题:
①考虑使用更高级的CPU 代替当前的CPU
②对于多CPU,考虑CPU之间的负载分配
③考虑在其它体系上设计系统,例如增加前置机、设置并行服务器等
内存和高速缓存
①内存的优化包括操作系统、数据库、应用程序的内存优化
②过多的分页与交换可能降低系统的性能
③内存分配也是影响系统性能的主要原因
④保证保留列表具有较大的邻接内存块
⑤调整数据库缓冲去大小(用数据块的个数表述)是一个重要的内容
⑥将最频繁使用的数据保存在存储区中
磁盘(I/O)资源问题
①磁盘读写进度对数据库系统是至关重要的,数据库对象在物理设备上的合理分布能改善性能
②磁盘镜像会减慢磁盘读写的速度
③通过把日志和数据库对象分布在独立的设备上,可以提高系统的性能
④把不同的数据库放在不同的硬盘上,可以提高读写速度
⑤把表放在一快硬盘上,把非簇的索引放在另一块硬盘上,保证物理读写速度更快
调整配置参数
①包括操作系统和数据库的参数配置
②并行操作资源限制的参数(并发用户的数目、会话数)
③影响资源开销的参数
④与I/O有关的参数
优化应用系统网络设置
①可以通过数组接口来减少网络呼叫
②调整会话数据单元的缓冲区大小
③共享服务进程比专用服务进程提供更好的性能
负载压力测试要识别的故障问题
数据库服务器性能问题
1,单一类型事务响应时间过长,如:
①数据库服务器负载过大
②糟糕的数据库设计
③事务粒度过大
④批任务对普通用户性能的影响
2,并发处理能力差,建议降低同一类型事务中锁的粒度,优化应用逻辑以缩短单一类型事务响应时间
3,锁冲突严重,资源锁定,造成的数据库事务超时,数据库死锁
4,监视并记录性能相关数据
5,定位资源占用较大的事务并做出必要的优化或调整
6,定位锁冲突,修改锁冲突发生严重的应用逻辑
7,进行必要的数据分布
负载压力测试要识别的故障问题
主要包括
①非正确执行的处理
②速度瓶颈与延迟
③不能达到满意服务水平
④接口页面不能正确地装载或者根本不能装载
web网站故障分析解决方法
①优化ASP代码
②优化数据库调用
③使用存储过程
④调整服务器性能
帖子还没人回复快来抢沙发