性能测试概述
性能测试定义:通过测试工具模拟多种正常、峰值以及异常负载条件对系统的各项指标进行测试。
- 目的:验证软件系统是否能够达到用户提出的性能指标,对系统未来的容量做出预测和规划,发现软件系统中存在的性能瓶颈并加以调整和优化。
性能测试的作用
性能测试的分类
- 负载测试:通过逐步增加系统负载,测试系统性能变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
- 压力测试:通过逐步增加系统负载,测试系统性能变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统能提供的最大服务级别的测试。
- 强度测试:又称“疲劳强度测试”,采用系统稳定运行情况下能够支持的最大并发用户数,或日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程。
- 容量测试:又称“大数据量测试”,包括独立的数据量测试和综合数据量测试,独立数据量测试是指针对系统存储、传输、统计、查询等业务进行的大数据量测试;综合数据量测试是指和压力测试、负载测试、疲劳强度测试相结合的综合测试。
- 基准测试:是比较新的或未知测试对象与已知参照标准(例如现有软件或评测标准)的性能测试,基准测试的关键是要获得一致的、可再现的结果。
性能测试的主要指标
- 性能测试的对象不同,测试的主要指标也不尽相同,常见的有以下指标:
性能测试步骤
数据库服务器性能常见问题和解决方案
- 数据库服务器常见问题:
- 1、单一类型事务响应时间过长:可能是数据库服务器负载过重、低效的数据库设计等问题造成的;
- 2、并发处理能力差:一般是对互斥资源访问造成的;
- 3、锁冲突严重:可能是资源锁定造成的数据库事务超时,数据库死锁等;
- 常见的解决方案:
- 1、监视性能相关数据;
- 2、定位资源占用比较大的事务并作出必要的优化调整;
- 3、定位锁冲突,修改锁冲突发生严重的应用逻辑;
- 4、对规模较大的数据或者无法通过一般优化解决的锁冲突进行负载均衡或数据分布式处理等。