应用负载压力测试

目录

负载压力测试

产品生命周期中负载压力测试计划

负载压力测试指标

优化调整设置

负载压力测试要识别的故障问题

优化调整设置

下午题分析注意

练习题


负载压力测试

目的:

★在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况

★预见系统负载压力承受力,在应用实际部署之前,评估系统性能

★分析系统瓶颈,优化系统

  • 开发过程中尽可能早地进行负载压力测试
  • 负载压力测试是性能测试的重要组成部分

性能测试

★性能评估主要内容

  • 评估并报告整个系统的性能(真实环境)
  • 对系统的未来容量作出预测和规划

★性能调优主要步骤

  • 查找形成系统瓶颈或故障的根本原因
  • 进行性能调整和优化
  • 评估性能调整的效果

★性能评测师性能调优的基础

相关概念

★负载测试:在符合指标要求下的最大量。

★压力测试:通过逐步增加系统负载测试系统性能变化并最终确定在什么负载条件下,系统性能处于失效状态,并以此获得系统性能最大服务级别的测试。

★并发性能测试:基于方案的考虑角度分

应用在 客户端/网络上/服务器上 性能的测试

★疲劳强度测试:日常业务疲劳强度模拟,高峰业务疲劳强度模拟

★大数据量测试:独立数据量测试,总和数据量测试

产品生命周期中负载压力测试计划

★需求分析中充分关注负载压力性能

  • 主要的焦点是为系统中共享的和有限的资源进行需求分析

★从设计中得到负载压力性能指标

★开发阶段创建一个负载压力性能测试环境

★验收测试再多等级范围内测试并调优

★运行阶段持续监控系统负载压力性能

负载压力测试指标

交易处理性能指标

  • 并发用户数指标
  • 交易处理指标
  • Web请求指标
  • Web页面组件指标

交易处理性能评估指标

  • 并发用户数指标
  • 交易响应时间
  • 交易通过率
  • 吞吐量
  • 点击率

服务器操作系统资源占用监控指标

  • CPU
  • 磁盘管理
  • 内存
  • 交换区SWAP
  • 进程
  • 安全控制
  • 文件系统

服务器操作系统资源占用监控指标

  • 读写页面的使用情况
  • 超过共享内存缓冲区的操作数
  • 上一轮询期间作业等待缓冲区的时间
  • 共享内存中物理日志和逻辑日志的缓冲区的使用率
  • 磁盘的数据块使用情况以及被频繁读写的热点区域
  • 用户事务或者表空间事务
  • 数据块锁资源
  • 关键业务的数据表的空间增长
  • SQL执行情况

中间件资源占用监控

★以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有关的参数

优化应用系统网络设置

  • 可以通过数组接口来减少网络呼叫
  • 调整会话数据单元的缓冲区大小
  • 共享服务进程比专用服务进程提供更好的性能

负载压力测试要识别的故障问题

主要包括

  • 非正确执行的处理
  • 速度瓶颈与延迟
  • 不能达到满意服务水平
  • 接口页面不能正确地装载或者根本不能装载

Web网站故障分析解决方法

  • 优化ASP代码
  • 优化数据库调用
  • 使用存储过程
  • 调整服务器性能

优化调整设置

下午题分析注意

练习题

【说明】 某酒店预订系统有两个重要功能,检索功能和预订功能。检索功能根据用户提供的关键字检索出符合条件的酒店列表,预订功能是对选定的某一酒店进行预订,现需要对该系统执行负载压力测试。
该酒店预订系统的性能要求为:
(1)交易执行成功率100%;
(2)检索响应时间在3s以内;
(3)检索功能支持900个并发用户;
(4)预订功能支持100个并发用户;
(5)CPU利用率不超过85%;
(6)系统要连续稳定运行72小时
【问题1】 简述该酒店预订系统在生产环境下承受的主要负载类型。

【问题2】  对该系统检索功能执行负载压力测试,测试结果如表1-1所示,请指出响应时间和交易执行成功率的测试结果是否满足性能需求并说明原因。

【问题3】 对该系统执行负载压力测试,测试结果如表1-2所示,请指出CPU占用率的测试结果是否满足性能需求并说明原因。

【问题4】根据【问题2】和【问题3】的测试结果,试分析该系统的可能瓶颈。

解析:

【问题1】该酒店预订系统在生产环境下承受的主要负载类型有:

1)并发用户数属于并发执行负载

2)连续稳定运行72小时属于疲劳强度负载

3)大量检索操作属于大数据量负载

【问题2】测试结果不满足性能指标。

当并发用户数为900时,响应时间为3.7秒,不满足响应时间小于3秒的要求;

当并发用户数为1000时,响应时间为6.6秒,交易成功率为98%,但要求检索功能的并发用户数最多为900,当用户数为1000时,不能算作满足。

【问题3】测试结果不满足性能指标。

当900个检索并发用户和1000个预订并发用户时,CPU利用率超过95%;要求检索功能支持900个并发用户,预订功能支持100个并发用户,所以在1000个检索并发用户和120个预订并发用户时CPU占有率超过85%不能算满足。

【问题4】

1)系统没有采用适合的并发/并行策略

2)服务器CPU性能不足

3)数据库设计不足或者优化不足

4)服务器网络带宽不足


版权声明:本文为FloraCHY原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。