性能测试实践1

2,573 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,573
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • 操作系统经常会利用磁盘交换的方式提高系统可用的内存量或内存的使用效率。 对多处理器, %Total Processor Time 反应了所有处理器的平均繁忙程度。
  • 操作系统经常会利用磁盘交换的方式提高系统可用的内存量或内存的使用效率。 对多处理器, %Total Processor Time 反应了所有处理器的平均繁忙程度。
  • 性能测试实践1

    1. 1. 性能测试技术
    2. 2. 主要内容 <ul><li>性能测试的关注点 </li></ul><ul><li>信息系统的性能测试 </li></ul><ul><li>性能测试的流程 </li></ul><ul><li>性能测试工具介绍 </li></ul><ul><li>案例分析 </li></ul>
    3. 3. 性能测试的关注点 <ul><li>给软件或系统一定的负载压力,考察软件或系统是否满足用户的需求。 </li></ul><ul><li>用户视角的软件性能 </li></ul><ul><li>管理员视角的软件性能 </li></ul><ul><li>开发人员视角的软件性能 </li></ul>
    4. 4. 用户角度的性能 <ul><li>软件对用户操作的响应时间 </li></ul><ul><li>如用户提交一个查询操作、打开一个 web 页面的链接等 </li></ul><ul><li>业务可用度,或者系统的服务水平如何 </li></ul>
    5. 5. 开发者角度的性能 代码 代码是否需要优化 数据库设计 数据库设计是否合理 系统架构 架构设计是否合理 软件性能描述 开发人员关心的问题
    6. 6. 系统管理员角度的性能 系统稳定性质 系统能否支持 7*24 小时业务访问 系统可扩展性 更换哪些设别可提供系统性能 系统可扩展性 系统性能的可能瓶颈 系统的容量 系统支持多少用户访问,处理量 资源利用率 服务器的资源使用状况 软件性能描述 管理员关心的问题
    7. 7. 信息系统的性能测试 <ul><li>( Information System ) </li></ul><ul><li>以提供信息服务为主要目的的数据密集型、人机交互的计算机应用系统。 </li></ul><ul><li>(数据采集、传输、存储和管理) </li></ul>
    8. 8. 信息系统的特点 <ul><li>涉及的数据量大 </li></ul><ul><li>绝大部分数据是持久化的 </li></ul><ul><li>这些持久化的数据为多个应用共享 </li></ul><ul><li>信息检索、统计报表、事务处理、决策等 </li></ul>
    9. 9. 信息系统的基本结构 <ul><li>硬件、操作系统和网络层(支撑环境) </li></ul><ul><li>数据库管理层 ( DBMS ) </li></ul><ul><li>应用层(分析、统计、报表、规划、决策等) </li></ul><ul><li>用户接口层(用户界面,外围系统接入点) </li></ul>
    10. 11. 信息系统性能测试目的 <ul><li>评价系统的当前性能 </li></ul><ul><li>分析系统瓶颈、优化系统 </li></ul><ul><li>预见系统未来性能,容量可扩充性 </li></ul>
    11. 12. 性能测试的实战流程
    12. 13. 性能测试关注的性能指标和资源设置 <ul><li>客户端 </li></ul><ul><ul><li>每秒交易数( Transations per second ) </li></ul></ul><ul><ul><li>交易响应时间( Response Time ) </li></ul></ul><ul><ul><li>虚拟并发用户数( Total Virtual Users ) </li></ul></ul><ul><ul><li>吞吐量( Throughout ) </li></ul></ul>
    13. 14. 服务器端 <ul><li>操作系统层面 </li></ul><ul><li>中间件层面 </li></ul><ul><li>数据库层面 </li></ul>
    14. 15. 操作系统层面 <ul><li>Windows/Linux/Unix 资源监控指标 </li></ul>系统上所有处理器都忙于执行非空闲线程的平均时间百分比 %Total Processor Time System 每秒由于页面错误从内存读入磁盘或写入磁盘的页面数 Pages/sec 可用物理内存数 Availabe Mbytes Memory 磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比 %Disk Time Physical Disk 计数器描述 计数器名称 类别
    15. 16. 中间件层 <ul><li>J2EE 资源监控指标 </li></ul>等待的连接数量 Waiting For Connection Current count 当前活跃的 JDBC 连接数 Active Connections Current Count 总的 JDBC 连接数 Connections Total Count JDBC 连接池的总数量 Max Capacity JDBC Connection Pool JVM 可用堆大小,实时值 Heap Free JVM 堆大小,实时值 Heap Size JVM 计数器描述 计数器名称 类别
    16. 17. <ul><li>J2EE 资源监控指标 </li></ul>已处理的请求总数 Serviced Request Total Count 队列请求的最久时间 Pending Request Oldest Time 空闲的进程数量 Execute Thread Current Idle Count Execute Queue 挂起请求的数量 Pending Request Current Count 计数器描述 计数器名称 类别
    17. 18. 数据库层面 当前用户的连接数,一般数据库服务器会有连接数限制 User connections System 缓存命中率。当该值比较小,而数据库比较繁忙时,可能需要调整缓存的大小 Cache Hit Ratio 数据库进程占用的 CPU 时间。在 Oracle 中,该计数器被称为 cpu used by this session Total Processor Time Memory 计数器描述 计数器名称 类别
    18. 19. 每秒的锁请求数 Lock Requests/sec 锁平均等待时间 Average Wait Time Oracle 数据库进程当前使用的内存量 PGA Memory( 仅用于 Oracle) Memory 每秒产生的死锁数量,当此数值比较大时,要查找产生死锁的原因 Number of Deadlocks/Sec SQLServer 数据库进程当前使用的内存量 Total Server Memory (仅用于 SQLServer ) Lock 计数器描述 计数器名称 类别
    19. 20. 每秒页面读写的次数 Pages Read/Sec 被挂起的物理读(写),当该值比较大时,可能是 CPU 或 I/O 产生了瓶颈 Outstanding Reads(Writes) 每秒产生的事务数量 Transatcions/Sec I/O 计数器描述 计数器名称 类别
    20. 21. 操作系统监控指标
    21. 22. 性能测试工具介绍: LoadRunner <ul><li>1. 介绍 </li></ul><ul><li>2. 测试图 </li></ul><ul><li>3. 内部逻辑原理图 </li></ul><ul><li>4. LoadRunner 测试过程 </li></ul>
    22. 23. 介绍 <ul><li>LoadRunner </li></ul><ul><li>一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题, LoadRunner 能够对整个系统架构进行测试。它主要由三大主要部分组成: </li></ul><ul><li>Controller </li></ul><ul><li>VuGen (Virtual User Generator) </li></ul><ul><li>Analysis </li></ul>
    23. 24. <ul><li>VuGen </li></ul><ul><li>不仅能够录制 Vuser 脚本,还可以运行这些脚本。进行调试时,从 VuGen 运行脚本很有用。通过运行脚本,可以模拟 Vuser 脚本在作为负载测试方案的一部分执行时将如何运行。使用 VuGen 我们能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程,然后将其转化为测试脚本。 </li></ul>
    24. 25. <ul><li>Controller </li></ul><ul><li>能够很快组织起多用户的测试方案。可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样就能将测试过程自动化。同样还可以用 Controller 来限定各种不同的负载方案。 </li></ul>
    25. 26. <ul><li>Analysis </li></ul><ul><li>在方案执行期间, Vuser 会在执行事务的同时生成结果数据,需要对系统各个性能指标的监视, Analysis 会在整个测试过程中,记录下所有产生的和所监视的数据,将其绘成图表,并在测试完成后,以报告形式展现给测试人员,以供参考和分析。 </li></ul>
    26. 27. 测试过程
    27. 28. 测试过程 计划测试 测试设计 创建 VU 脚本 创建测试场景 运行测试场景 分析结果
    28. 32. 案例分析 _1 :介绍 <ul><li>针对某公司办公自动化( OA )系统的负载压力测试,采用专业的负载压力测试工具来执行测试。系统采用 Browse/Server 架构,服务器是一台 PC Server ( 4 路 2.7GHz 处理器, 4GB 内存),安装的平台软件包括 Microsoft Internet Information Server 5.0 , ASP.NET , SQLServer 2000 。使用 2 台笔记本电脑安装测试工具模拟客户端执行“登录”业务操作。 </li></ul>
    29. 33. 案例 _1: 测试需求 <ul><li>第一,测试系统分别在 2M 、 4M 网络带宽下,能够支持用户登录的最大并发用户数; </li></ul><ul><li>第二,测试服务器的吞吐量(即:每秒可以处理的交易数),主要包括服务器 CPU 平均使用率达到 85% 时系统能够支持的最大吞吐量和服务器 CPU 平均使用率达到 100% 时系统能够支持的最大吞吐量。 </li></ul>
    30. 34. 案例 _1 :测试目标 <ul><li>指标“响应时间”合理范围为 0 ~ 5 秒,可支持的最大并发用户数; </li></ul><ul><li>评测系统的服务器资源是否合理,是否需要进行改进。 </li></ul><ul><li>网络带宽是否使用合理。 </li></ul>
    31. 35. 案例 1_ 测试策略 <ul><li>设计出两种场景 2M 网络和 4M 网络环境下进行模拟测试; </li></ul><ul><li>其中选定登录业务进行测试,加压策略采取逐步加压的方式。 </li></ul>
    32. 36. 案例 _1: 2M 网络 图中登录响应时间的纵坐标单位是 0.1 秒
    33. 37. CPU 资源利用率
    34. 38. 案例 _1: 4M 网络 图中登录响应时间的纵坐标单位是 0.1 秒
    35. 39. 4M 下的 CPU 的资源利用率
    36. 40. 案例 2_ 工作流引擎 <ul><li>模拟多用户登录《工作流平台系统》,针对工作流 A 、 B 、 C 分别连续创建 20 个实例。在单机和集群测试环境分别进行负载压力性能测试,单机环境下测试用机与一台应用服务器连接在同一交换机上,压力直接加在一台应用服务器上。集群环境下测试用机与服务器连接在同一交换机上,压力由负载均衡模块分摊到两台应用服务器上,数据库服务器不作集群处理。 </li></ul>
    37. 41. 案例 _2: 测试需求 <ul><li>随着负载的增加,采用集群方案是否对此应用系统有效 </li></ul><ul><li>服务器资源是否使用合理 </li></ul>
    38. 42. 测试结果
    39. 45. 问题: <ul><li>集群是否比单机环效率要高? </li></ul><ul><li>集群下的服务器 cpu 高于单机下的原因? </li></ul><ul><li>此系统是否可以采用集群的方案? </li></ul>

    ×