J2EE性能测试培训课件


1 J2EE性能测试 周润松 2008年6月14日 中国软件评测中心 2 课程内容介绍 4 J2EE应用平台相关介绍 4 J2EE应用平台性能故障诊断方法 4 J2EE应用平台性能故障定位与调优工 具 4 J2EE应用平台故障定位与调优 4 J2EE应用平台性能故障定位与调优案 例 3 J2EE应用平台相关介绍 2 J2EE应用背景 2 J2EE技术框架介绍 2 J2EE开发部署 2 J2EE常见的部署架构 2 J2EE应用服务器平台 4 在企业级应用开发中所面临的而且必须解决 的问题: n 分布式 n 可移植 n 面向Web体系 n 可装配 n 能满足企业计算要求 n 一致性 n 事务性 n 安全性 n 还要有好的特性 n 可伸缩 n 可扩展 n 易维护 应用背景 5 J2EE提供了一套完整的解决所有这些问题的 框架方案: n 提供了分布式、可移植构件的框架 n 简化了服务器端中间层构件的设计(多层次) n 为构件与应用服务器提供标准API n 获得了业界的广泛支持 应用背景 6 J2EE J2EE 规范 J2EE 参考实现 J2EE 兼容性测试包 J2EE 蓝本 J2EE组成 7 J2EE组成 q J2EE规范:定义J2EE的规范,开发商按照这个规范实现自 己的J2EE系统。 q J2EE参考实现:J2EE平台的软件开发包(J2EE SDK); J2EE的完全实现;一组工具和运行环境;完全免费得到 q J2EE兼容测试包:用来测试一种应用是否符合J2EE的规范 。 q J2EE蓝本:提供了用于实施基于J2EE的多层应用的文档和 实例套件的编程模型,简化了开发基于J2EE的多层应用程序的 复杂性。它应被用作开发人员设计和优化组件的原则,以便从 策略上对开发工作进行分工,分配技术资源。 8 J2EE系统构架 提供底层常用的 服务 Comp Services J2EE Container Comp Comp Comp 不需要关心底层 (复杂的)常用 服务的实现 9 J2EE系统构架 n 支持以组件化的方法开发、部署、管理多层结构的分布 式企业(Web)应用。 n 提供一种统一的、开放标准的多层平台。 n 组件依赖于系统级实体——容器(Container)的运行时 支持。 n 容器提供: n 生命周期管理 n 组件的部署 n 为组件的运行指派线程(构件不是独立运行的) n 许多组件行为都可以在部署时以声明的方式进行定制。 10 n 应用组件 n 由开发人员实现,构成应用系统 n 运行在J2EE平台上 n 包含: n 客户端构件 n Applets n Application Clients n 服务端构件 n Web构件(Servlets, JSPs) n EJBs n 服务 n J2EE应用构件所使用的功能 n 由J2EE平台提供商实现,分为: n Service API(开发时使用) n 运行时服务 n 通信 n 支持协作构件之间的通信、由Container提供 J2EE系统构架 11 J2EE系统构架 12 J2EE简介 ——系统构架 n 每个J2EE构件都运行在某个特定的容器内,容器由J2EE平 台提供商提供。 n 容器为组件提供特定的开发用服务和运行时服务(如生命 周期管理、安全性管理、事务处理等) n 不同类型的容器提供不同的服务 13 J2EE简介 ——系统构架 客户端应用组件 n Applet nJava类 n图形界面( GUI)组件,一般运行在Web浏览器中。 n在J2EE应用中一般用来提供用户界面。 n Application nJava程序 n一般具有图形用户界面。 n可以直接访问J2EE中间层的所有服务 n 可以直接调用EJB提供的服务。 n基于浏览器的客户端只能直接访问Web构件的服务。 14 J2EE简介 ——系统构架 服务器端应用组件 q Servlet n Java类 n 运行在服务端 n 接收HTTP请求,动态生成HTTP响应:Servlet与运行于web server的 servlet引擎之间通过请求和响应交互。 q JSP n HTML document: n 嵌入了JSP特定的tag n 在页面中加入Java代码,动态生成页面的内容 n 在服务器端,JSP页面被编译成Java Servlet执行。 q EJB:不是一个具体的产品,而是一个Java服务器端组件开发的规范,其 目的是为了定义一个用来开发面向对象分布式应用组件的标准方法,软件 厂商根据它来实现EJB服务器。 15 J2EE简介 ——系统构架 Service APIs q JNDI(Java Naming and Directory Interface)用于在网络中查找查找/定 位组件或资源,支持在程序中存取带名字的Java对象。 JNDI屏蔽了不同目 录服务之间的差异。JNDI service API是和具体的目录服务无关的。 q JDBC (Java Database Connectivity)提供与厂商无关的数据库连接,提 供一种通用的方法用来查询、更新关系型数据库表,并且把数据库操作的 结果转化成Java的数据类型。 q JTS/JTA (Java Transaction Service/API)支持分布式事务处理的标准 API,与实现无关。 q Java Mail API定义了一组在程序中用来调用邮件功能的API。这组API屏 蔽了真正的邮件服务所使用的协议。 q Java IDL service API是用Java实现的CORBA规范,支持异质 (heterogeneous)对象的连接与互操作性。 16 J2EE简介 ——系统构架 Run-time Services q Life cycle 主要指EJB的生命周期管理,由Container来管理运行于其中的构 件的生命周期。 q Transaction q Security q Persistence q Resources:数据库连接池,系统线程池。 Communication Services q JMS(Java Messaging Service)定义了一组API,提供可靠的、异步的消息 发送和接收功能。 q RMI/IIOP,基于IIOP实现的RMI, EJB客户端使用 RMI/IIOP与EJB通信。 17 其他相关技术 qXML (eXtensibleMarkup Language) q Web Service qSTRUTS q … J2EE简介 ——系统构架 18 J2EE基于角色的开发 n 将构建整个软件系统的任务划分到不同的 角色 n 明确的划分任务与责任 n 不同的阶段有不同的关注重点,这种划分使得 每个角色仅关注他所要完成的工作 n 实现了开发与部署的分离 n ... J2EE开发 19 n J2EE规范将应用系统的生命周期映射到了6个角色: n J2EE Product Provider n Tool Provider n Application Component Provider n Application Assembler n Deployer n System Administrator n 一个角色的输出经常是另一个角色的输入 n 如Application Assembler将Application Component Provider开发的 构件组装成应用,而Deployer则将Application Assembler组装的应 用部署到运行平台上。 n 同一个人(组)可能会执行两个或多个角色的任务。 n 一个角色的任务也可能由几个人(组)完成。 J2EE开发 20 J2EE开发 n J2EE Product Provider n 实现J2EE产品API,提供J2EE应用的运行环境 n IBM、BEA、Sun n WebsphereApplication Server n WebLogicApplication Server n IPlanet n J2EE Reference Implementatioin n Tool Provider n 提供工具支持J2EE平台上的任务 n 开发环境(WSAD、WeblogicBuilder、JBuilder) n 应用组装工具 n 管理/监视工具等 21 n Application Component Provider n 提供组成应用的构件以及相关的DD n Application Assembler n 将构件提供者提供的构件组装成应用。 n Deployer n 将应用安装配置到运行环境中。 n System Administrator n 进行配置数据的备份 n 配置企业级应用 n 进行应用统计分析和性能分析 n 创建服务器组和服务器克隆以优化系统性能 n 管理并控制应用的安全性 J2EE开发 22 EJB Servlet and JSP Application Client EJB Module Web Module App Client Module Application Application Server EJB Container Web Container Client Container Tool Provider 提供开发/测试工具 Application Component Provider利用工具实现构件 Tool Provider 提供组装工具 Application Assembler 利用工具组装应用 Deployer安装应用 J2EE Product Provider提供容器 System Administrator 管理/维护系统 开发阶段 集成阶段 运行/维护阶段 Tool Provider 提供部署工具 J2EE开发 23 J2EE部署 开发与部署 24 部署:打包(Packaging) n 组件提供者开发的组件被打包在不同的文档中 n JAR -Java Archive n EJBs, Application Clients n WAR -Web Archive n JSPs, HTML, GIF, JPG, Servlet class n EAR -Enterprise Archive n JARsand WARs n Deployment Descriptor n 打包JAR、WAR、或EAR都需要提供相应的DD。 J2EE部署 25 J2EE部署 26 部署: Deployment Descriptors n XML格式的文件 n 用于描述: n 模块中所包含的组件 n 模块所需要的环境(如安全性控制) n 每个模块或ear文件都有一个DD。 n 可以由厂商提供的工具自动生成,并进行可视化 的编辑: n 如Websphere n 可以手工创建和编辑 J2EE部署 27 EJB Deployment Descriptor : ejb-jar.xml n 同一jar文档中的所有EJB共享一个DD n 对于每个EJB,描述了 n Home接口,Remote接口以及Bean实现的名字 n 对于Session Beans:说明类型 n 对于Entity Beans:说明持久性策略 n 对于CMP:指名主键(primary key)以及由容器管理的字段 n 事务管理类型 n 如果由容器管理事务,指定EJB方法的事务属性 n 环境入口 n EJB引用 n 该EJB使用的安全性角色 n Method-mapping (将安全性角色映射到方法上) J2EE部署 28 WAR Deployment Descriptor :web.xml n 定义该模块中包含的servlets, JSP, 以及静态资源 n Servlet URL pattern, class/file, attributes n 安全性限制 n 为每个URL指定安全性角色可以执行的方法: n GET, POST, 等 n 登陆配置 n 如何进行身份认证 n EJB and Resource references n 该模块使用的安全性角色 J2EE部署 29 EAR Deployment Descriptor:application.xml n 定义了EAR文件中包含的所有模块: n EJB jars n WARs n Application Client jars n 定义安全性角色 J2EE部署 30 J2EE应用实例(B/S,C/S) 31 J2EE应用实例(B/S/S) 32 J2EE应用实例(N-Tier) 33 n 支持多层应用开发模型 n 将实现多层结构应用的工作分为两部分 n 系统服务由平台提供 n 开发者关注于商业逻辑和表示逻辑的实现 n Write Once, Run Anywhere n J2EE是一个开放标准 n Java的特性 n 丰富的部署时定制特性 n 安全性限制 n 资源 n 明确划分任务与责任 n 系统可扩充性 n 灵活的安全性模型 J2EE优势 34 常用的J2EE应用服务器 4 BEA WebLogic 4 IBM Webphere 4 Oracle 9i Application Server 4 Sun iPlanet 4 Jboss源代码开放 4 AparcheTomcat 4 Resin 4 … Servlet/JSP专用容器 35 J2EE应用平台性能故障诊断方法 4 常见故障 4 可能导致故障原因 4 诊断故障的方法 36 37 常见故障 4 硬件故障 4 断开的网络连接 4 网络阻塞 4 Web 应用程序对堆大小的利用 4 由应用程序服务器完成的 JVM 垃圾收集 4 Web 应用程序的内在瓶颈 4 不足的资源可用性(内存、磁盘、I/O 等) 4 很大的会话数据对象 4 应用程序错误 4 后端响应时间问题 38 可能导致的原因 4 低效率的Servlet、JSP、EJB、Java类和方法 4 运行缓慢的SQL语句,低效率的EJB/DB交互 4 应用服务器配置和部署问题 4 RMI和对象串行问题 4 低效率的第三方组件 4 JVM 堆使用和配置问题 4 操作系统参数和配置 4 限制硬件模块 4 集群配置和负载平衡问题 4 过多网络流量 39 故障诊断方法 4 离线系统压力测试 4 在线系统监控 4 系统日志 40 J2EE应用平台性能 故障定位与调优工具 4 工具横向介绍 4 J2EE特有的监控手段 4 工具能力 41 42 43 J2EE特有的监控手段 4 JVMPI ->JVMTI JDK提供的内部监控接口 4 JMX Java Management extensions 4 BCI(BytecodeInstrumentation) 字节码插入技术 44 JVMPI-〉JVMTI 1 4 Java 虚拟机工具接口(Java Virtual Machine Tool Interface,JVMTI)提供了 一种编程接口,允许软件开发人员创建软件代理以 监视和控制 Java 编程语言应用程序。JVMTI 是 Java 2 Software Development Kit (SDK), Standard Edition, 版本 1.5.0 中的 一种新增功能。它取代了 Java Virtual Machine Profiling Interface (JVMPI) 45 JVMPI-〉JVMTI 2 4 JVMTI 函数接口 46 JVMPI-〉JVMTI 3 4 JVMTI 事件管理能力 47 JMX(JavaManagement Extensions)1 4 一种标准的JAVA规范,用来进行服务器的信 息配置以及管理、收集服务器工作信息 48 JMX(JavaManagement Extensions)2 4 Weblogic提供的命名管理空间 2 服务器通讯协议配置 2 域以及服务器配置 2 应用配置 2 JDBC配置 2 JMS配置 2 集群配置 2 机器以及节点管理 2 等… 49 JMX(JavaManagement Extensions)3 50 BCI(字节码插入技术) 4 参考JSR-163标准 4 通过在已经有的class文件中插入特定的字 节码,从而类的方法加载信息 4 参考类java.lang.instrument 51 J2EE平台工具 4 白盒测试工具(JVMPI,JVMTI) Quest PROBE,JProfile 4 LOADRUNNER, QUEST FOR WEBLOGIC(JMX) 4 Wily Introscope, Quest Performasure(BCI),Mercury J2EE Diagnostic 52 工具能力 4 操作系统级监控 4 JVM堆监控 4 应用服务器监控(如线程池,页面响应速度) 4 方法级调用效率 4 SQL执行效率 53 J2EE应用平台故障定位与调优 4 故障定位的方法 4 调优途径 54 故障定位的方法 4 压力测试 4 系统监控 4 日志分析 55 J2EE平台调优 4 应用程序调优 4 应用服务器调优 4 数据库调优 4 操作系统调优 4 性能监控+分析 56 应用程序调优 4 方法的效率调优 2 减少不必要的操作 2 使用缓存对象 2 使用恰当的对象类型 4 JDBC优化 2 及时释放JDBC连接 2 SQL优化 … 57 应用服务器调优 4 JVM优化 2 JVM大小调整 2 JVM平台选择 4 连接池资源的优化调整 2 执行线程池的调整及配置 2 JDBC连接池 2 JMS连接 58 数据库调优 4 存储设备的访问 4 SQL语句以及存储过程调优 4 表空间的调整 4 视图,索引的优化 59 操作系统调优 4 补丁升级 4 网络参数调整 4 文件描述符调整 4 … 60 性能监控+分析 4 操作系统监控 4 应用服务器监控 4 数据库监控 不断反复优化、调整 61 J2EE应用平台性能故障定位与调优案例 4 宁夏地税征收管理信息系统 4 中国移动12580系统性能测试与调优 4 北京市公安局110接处警处理系统 62 宁夏地税征收管理信息系统 4 案例背景介绍 4 测试方法 4 测试问题 4 提出的改进意见 63 宁夏地税征收管理信息系统 4 WEBLOGIC应用服务器 4 ORACLE RAC服务器 4 UNIX平台 64 65 测试方法 4 LOADRUNNER 压力测试 4 Wily Introscope监控 4 QUEST FOR Oracle监控 4 UNIX命令监控网络流量 66 问题 4 业务操作时间响应慢 4 Weblogic服务器有DUMP现象 4 业务服务器以及数据库服务器内存资源紧张 67 LR负载压力测试 7.96.84.63.0查询 131.1103.154.958.9征收 138.3138.968.671.9申报 130.5138.260.371.0登记 13.210.34.04.2登录 28262826 200并发用户100并发用户 平均响应时间(秒) 测试案例 68 69 在线监控发现的问题 4 耗时的方法调用以及大量的反复调用 4 SQL耗时操作 4 存储过程耗时 70 网络流量 0.011266.4327.580.041940.2152.030.052535.5779.61158.16.17.28 0.01274.5320.270.01399.3336.640.01569.7156.91158.16.17.26 0.14397.8340.000.19574.0359.100.32959.0199.10158.16.17.22 最小最大平均最小最大平均最小最大平均 发送(KB/S)接收(KB/S)收发(KB/S) 主机 71 调优建议 4 优化EJB方法调用,Servlets&JSP处理 4 优化SQL语句和对应表的资源 4 大表分区设置并行度 4 历史数据离线运行 4 大资源数据统计查询的权限控制 4 Weblogic负载均衡 72 中国移动12580系统性能测试与调优 4 案例背景介绍 4 测试方法 4 测试问题 73 系统介绍12580 12580语音信息门户是由多个大型 呼叫中心,海量数据库,以及核心业 务平台三部分组成的。 分布在31省的12580呼叫中心及 12580中央呼叫中心有数万名客服 人员,提供7x24小时的信息查询, 代订以及商旅服务。海量数据库可以 容纳全国所有一、二、三级城市的各 行业信息,信息总量数千万条,同时 可以保存用户所有信息,包括历史纪 录。 12580语音信息门户与中国移动骨 干网直连,网络跨接全国,面向31 个省、自治区、直辖市的数亿手机和 固定电话用户提供电信级的信息服务。 未来将提供更多的服务接入方式,也 将整合更多服务种类,并根据用户特 征提供更为精准,用户更加习惯和便 捷的信息到达方式。 74 系统测试环境—HP实验室 75 测试方法 4 LOADRUNNER 负载压力测试 4 QUEST PerformasureJ2EE监控分析 4 QUEST Spotlight for UNIX 主机监控 4 QUEST Spotlight for Oracle Rac 数 据库监控 4 HP UNIX 自带命令 VMSTAT IOSTAT 等 76 发现的问题 4 Web服务器 2 Web服务器异常日志 4 应用服务器 2 程序异常信息 2 第三方插件导致的死锁 2 应用程序日志导致的IO问题 4 数据库 2 参数配置 2 SQL语句 2 索引 77 Weblogic服务器问题 4 大规模并发下的数组溢出问题 4 应用程序中的日志信息过大,导致的io问题 4 参数序列化处理异常 4 Weblogic数据池配置的错误导致rac的负 载不均 78 业务响应时间—线程死锁 79 Oracle配置参数调整 4 Process大小 4 Session的大小 4 Sequence的大小 80 总结 4 J2EE应用平台相关介绍 4 J2EE应用平台性能故障诊断方法 4 J2EE应用平台故障定位与调优 4 J2EE应用平台性能故障定位与调优工 具 4 J2EE应用平台性能故障定位与调优案 例 81 测试工具上机实习 测试工具: QUEST FOR WEBLOGIC WILY INTROSCOPE 82 谢谢!
还剩81页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 15 人已下载

下载pdf

pdf贡献者

yakesa

贡献于2011-11-25

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf