资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
WAS 整理整理侯泰浩侯泰浩一、一、 WAS 是什么是什么IBM WAS 的全称是 IBM WebSphere Application Server,和 Weblogic 一样,是当前主流的 App Server (应用服务器)之一1.1术语术语WAS: IBM Websphere Aplication Server, 中间件应用服务程序; IHS: IBM HTTP SERVER DM: Deployment Manager, WAS 中的集群管理节点; ND: NodeAgent, WAS 中的节点监听程序; JVM: Java Virtual Machine, Java 虚拟机; GC: Gabage Collection, 自动垃圾回收1.2WAS ND 集群基本概念及体系结构集群基本概念及体系结构WAS 集群由一组应用服务器组成,每个服务器上部署了同样的应用程序。通过集群可以实现可扩 展性(服务更多客户,提高吞吐量) ,负载均衡(平衡负载资源,使资源得以有效利用) ,高可用性 (提供故障恢复和补偿机制,在关键性业务中提供容错功能) 。 下图是 ND 分布式环境的体系结构,包括单元、节点、服务器等基本概念。WAS 群集是为了实现集中管理和负载均衡同时可以实现故障转移,一个 2 节点的群集拓扑如下:其中,DeploymentManager 通过每个节点上的 NodeAgent 完成对 AppServer 的配置修改、应用发 布以及启动和停止,实现集中管理。 如果安装多个 IHS,并实现负载均衡和分发,可以使用防火墙的负载分发功能。 每个节点上的 AppServer 可以是多个的。二、二、 WAS 基本参数配置基本参数配置描述描述参数参数缺省值缺省值设置原则设置原则JVM 堆栈服务器服务器应用应用程序服务器 server1 Java 虚拟机无最小值为总内存内存 1/8, 最大值为总内存 1/2 至 3/4,建议 256M- 1500M连接池资源资源 JDBC 提供程序 (JDBC 提 供程序名) 数据源数据源 (数据源名) 连接池属性最小连接数: 10 最大连接数: 50通过 TPV 监控连接 池的大小变化曲线 设置语句高速缓存资源 JDBC 提供程序 (JDBC 提 供程序名) 数据源 (数据源名) WebSphereApplicationServer 数 据源属性语句高速缓存大小10比如实际情况下 CPU 利用率很高, 并且表明有瓶颈, performance advisors 报警提示 prepare statement 缓存丢弃 率较高,这说明默 认的值(10)太小,需要增加该值大小以 提高吞吐量。JMS 池资源 JMS 提供程序缺省消息传递 JMS 激活规范激活规范名最大批次大小: 无 最大并发端点 数:无根据实际情况分析Web 容器线程 池服务器应用程序服务器 (服务器 名) 线程池 WebContainer最小大小:10 最大大小:50通过 TPV 监控 Web 容器线程池最大值 (在可接受的相应 时间范围内),根 据此值进行设置。EJB 缓存服务器应用程序服务器 (服务器 名) EJB 告诉缓存设置 EJB 缓存 设置高速缓存大小高速缓存大小: 2053 清除时间间隔: 3000比如通过 TPV 监控 发现 ejbStore()有很 高的调用率并且 CPU 利用率很低, 可以基于期望的最 大的活动活动的 EJB 实 例设置该值servlet 高速 缓存服务器-server1-web 容器设置- web 容器-启用 servlet 高速缓 存 关闭建议启用 servlet 高速缓存三、三、 WAS 的调优思路的调优思路3.1 基本思路基本思路部署在 WAS 上的应用程序,其性能是由多个因素决定的。例如网络、数据库、内存分配、WAS 服 务器的配置以及应用程序的设计。对于一个标准的 J2EE 应用,一个请求到来时,往往需要经过多次 转发:网络 Web 服务器 Web 容器 EJB 容器 数据库。而每一次转发,都可能造成请求处理的瓶 颈,使得应用程序整体性能下降。 如果我们把每一次转发的待处理资源都看成一个队列,如下图:待处理资源队列待处理资源队列对于 WAS 调优,要记住的一个基本原则就是,使得在队列中等待的请求的数量最小化。在实践中 我们发现,为了达到这个目的,最有效的配置方式 就是使得队列成为一个“漏斗” 。也就是说,越靠近客户端的队列,其容量越大,而后面的队列,其容量要略小于或等于前面的队列。3.2 WAS 主要的调优参数主要的调优参数3.2.1 WAS 服务器参数服务器参数WebWeb ServerServer 的最大并发用户:的最大并发用户:这个设置是在 conf/httpd.conf 这个文件里面配置的。在 Unix 系统中,对应的属性是 MaxClient;在 Windows 系统中,对应的属性是 ThreadsPerChild。 WebWeb ContainerContainer 的最大、最小并发用户:的最大、最小并发用户:在管理控制台中点击应用程序服务器 server1 线程池 WebContainer,根据观察的性能情 况和应用情况输入合适的最小、最大进程数。对象请求代理(对象请求代理(ORBORB)的线程池大小:)的线程池大小:在管理控制台中点击应用程序服务器 server1 ORB 服务 线程池,根据观察的性能情况和 应用情况输入合适的最小、最大进程数。设置数据库的连接池属性:设置数据库的连接池属性:JDBC 提供者 数据库 JDBC 驱动名称 数据源 数据源名称 连接池 ,根据观察的性能情况 和应用情况输入合适的最小、最大连接数。JVMJVM 堆参数设置的性能调优:堆参数设置的性能调优:应用程序服务器 server1 进程定义 Java 虚拟机,根据硬件物理内存和应用情况输入合 适的初始堆大小、最大堆大小。ORBORB 参数调用方式的性能调优:参数调用方式的性能调优:应用程序服务器 server1 ORB 服务选中按引用传递。关闭动态加载开关:关闭动态加载开关:企业应用程序 应用名称 关闭启动类重新装入开关。 关闭会话序列化,应用程序服务器 server1 会话管理 分布式环境设置 分布式会话选 择无即可。3.2.2 JVM 的参数的参数WAS 在 HP 和 Solaris 上使用的是 Sun 提供的 JVM,在其他平台使用的是 IBM 自己的 JVM,建议使 用 WAS 自带的 JVM,因为在产品支持等方面会获得更多地优势HeapsizeHeapsize(-Xms-Xms 和和-Xmx-Xmx):):heapsize 的大小依赖于系统平台和具体的应用等多种因素。最大 heapsize 需要小于机器的物理 内存,一般来说,设置最大 heapsize 为 512m 是一个常见的起点。同时,在生产环境中,最好将 Xms 设置为小于 Xmx 的值。GCGC(GarbageGarbage CollectionCollection,自动垃圾回收自动垃圾回收):):一般来说,良好的 GC 状态需要保证相邻两次垃圾回收的平均间隔时间应当是单次垃圾回收所需 时间的至少 5-6 倍。GC 的调优是通过在模拟压力的情况下不断调整最大最小 heapsize 来实现的。HeapHeap FragmentationFragmentation (heap(heap 碎片碎片) ):heap 碎片的问题在 JVM 中存在大对象的情况下尤为突出。减少碎片的方法包括调整 pCluster(-Xp)和 kCluster(-Xk)参数。3.2.3 Web Container (Web 容器)容器)对 Web Container 的调优是通过对 Web Container 传输链中各个通道 (TCP、HTTP、WebContainer)的参数调整进行的。这些参数包括诸如 ThreadPool 的最大最小值, buffer 大小, timeout 时间的大小, keep-alive 的值等等。 Web 容器线程池要点就是:“通常,对于每个服务器 CPU,5 至 10 个线程将会提供最佳吞吐量” (现在的一个 cpu 可以用核来代替) 。比如你的 Pc Server 有 2 块 CPU,每块 CPU 都是 4 核,那么你一 个 Application Server 可以设置的最小值和最大值可以分别为 40、80。但是一般考虑到能充分利用 CPU 和 Memory,或者为不同的应用启用不同的 application server,一台 Pc Server 上并不仅有这 么一个 appserver,而且还有别的进程在占用着 CPU,所以默认的 10 到 50(Linux 系统上 25 个)是 一个比较合适的值,当然更准确的值需要通过性能测试来确定。在 进行性能测试的时候,如果吞吐 率不是很满意,或者在 TPV 中看到线程池占用一直是最大值,不要立刻就调大线程池的设置往往 吞吐率会更一步下降。这时候 要注意 CPU 占用率的情况、vmstat 的 r 列值,特别是 System 状态占用 率的情况,如果接近 10%,甚至超过 10%,那么可以肯定系统在进程切换上 面消耗的资源太多了。下 调线程池的大小反而会提升吞吐率,而且会由于吞吐率的提升降低页面平均响应时间。3.2.4 Data Source对 Data Source 的优化包括两个方面。一是 JDBC Driver 的选取,尽可能应使用 Type 4 的 JDBC driver,这种 driver 是纯 javajava 的,适用于 client/server 模式,并提供比 type2 和legacy/CLI 的 driver 更好的性能。另一方面是 Database 连接池的参数设置,主要包括最大和最 小连接以及 timeout 的设置。具体的设置于应用程序的特性和并发用户量相关,一般来说,可设置最 小连接为 1 且最大连接为 30,作为一个继续调优的起点。 Application Server 将在使用该数据源的每个应用程序服务器中创建连接池的单独实例。例如: 如果运行包含三个服务器的集群,这三个服务器都使用 myDataSource,并且 myDataSource 的“最大 连接数”设置为 10,那么可生成多达 30 个连接(3 个服务器乘以 10 个连接) 。3.2.5 其他其他 除了 JVM,Web Container 和 Data Source 之外,WAS 的性能调优还包括很多其他方面的内容, 如 JMS、EJB、Session、Dynamic Cache 等等。四、四、 监控工具监控工具4.1 WAS 自带的自带的 TPVWAS 中免费提供的 Tivoli Performance Viewer(TPV)允许客户对关键资源(如 JVM、Web 容器 和 EJB 容器以及远程连接池)进行监视。显示从本地或远程应用服务器收集的 PMI (Performance Monitoring Infrastructure )数据 摘要报告:表格方式查看性能模块:图形方式查看性能模块:但是 TPV 有一些明显缺点:WAS自带TPV的缺点. doc4.2 Java 性能监测工具性能监测工具Jprofiler/Jprobe:JProfiler 是一个全功能的 Java 剖析工具(profiler) ,专用于分析 J2SE 和 J2EE 应用程序。JProfiler 直觉式的 GUI 让你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让你 得以对 heap walker 作资源回收器的 root analysis,可以轻易找出内存漏
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号