WAS监控调优思路及工具汇总.docx

上传人:小飞机 文档编号:4926027 上传时间:2023-05-23 格式:DOCX 页数:11 大小:208.21KB
返回 下载 相关 举报
WAS监控调优思路及工具汇总.docx_第1页
第1页 / 共11页
WAS监控调优思路及工具汇总.docx_第2页
第2页 / 共11页
WAS监控调优思路及工具汇总.docx_第3页
第3页 / 共11页
WAS监控调优思路及工具汇总.docx_第4页
第4页 / 共11页
WAS监控调优思路及工具汇总.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《WAS监控调优思路及工具汇总.docx》由会员分享,可在线阅读,更多相关《WAS监控调优思路及工具汇总.docx(11页珍藏版)》请在三一办公上搜索。

1、WAS整理侯泰浩、WAS是什么IBM WAS 的全称是 IBM WebSphere Application Server,和 Weblogic 一样,是当前主流的 App Server (应用服务器)之一1.1术语WAS: IBM Websphere Aplication Server,中间件应用服务程序;IHS: IBM HTTP SERVERDM: Deployment Manager, WAS 中的集群管理节点;ND: NodeAgent, WAS中的节点监听程序;JVM: Java Virtual Machine, Java 虚拟机;GC: Gabage Collection,自动垃圾

2、回收1.2WAS ND集群基本概念及体系结构WAS集群由一组应用服务器组成,每个服务器上部署了同样的应用程序。通过集群可以实现可扩展 性(服务更多客户,提高吞吐量),负载均衡(平衡负载资源,使资源得以有效利用),高可用性(提 供故障恢复和补偿机制,在关键性业务中提供容错功能)。下图是ND分布式环境的体系结构,包括单元、节点、服务器等基本概念。WAS群集是为了实现集中管理和负载均衡同时可以实现故障转移,一个2节点的群集拓扑如下:其中,DeploymentManager通过每个节点上的NodeAgent完成对AppServer的配置修改、应用发布 以及启动和停止,实现集中管理。如果安装多个IHS,

3、并实现负载均衡和分发,可以使用防火墙的负载分发功能。每个节点上的AppServer可以是多个的。二、WAS基本参数配置描述参数缺省值设置原则JVM堆栈服务器应用程序服务器 serverl Java 虚拟机无最小值为总内存1/8, 最大值为总内存1/2 至3/4,建议 256M-1500M连接池资源JDBC提供程序(JDBC提 供程序名)数据源 (数据源名) 连接池属性最小连接数:10最大连接数:50通过TPV监控连接 池的大小变化曲线 设置语句高速缓存资源JDBC提供程序(JDBC提 供程序名)数据源 (数据源名)WebSphereApDlicationServer10比如实际情况下 CPU利

4、用率很高,并 且表明有瓶颈, performance advisors 报警提示prepare statement缓存丢弃 率较高,这说明默认 的值(10)太小,需要数据源属性语句高速缓存大小增加该值大小以提 高吞吐量。JMS池资源JMS提供程序缺省消息传递JMS激活规范激活规范名最大批次大小:无最大并发端点数:无根据实际情况分析Web容器线程 池服务器 应用程序服务器(服务器 名)线程池 WebContainer最小大小:10 最大大小:50通过TPV监控Web容器线程池最大值(在可接受的相应 时间范围内),根据 此值进行设置。EJB缓存服务器 应用程序服务器(服务器 名) EJB告诉缓存设

5、置 EJB缓存 设置高速缓存大小高速缓存大小:2053清除时间间隔:3000比如通过TPV监控 发现ejbStore()有很 高的调用率并且 CPU利用率很低,可 以基于期望的最大 的活动的EJB实例 设置该值servlet高速缓 存服务器-server1-web容器设置 -web容器-启用servlet高速缓 存关闭建议启用servlet高 速缓存三、WAS的调优思路3.1基本思路部署在WAS上的应用程序,其性能是由多个因素决定的。例如网络、数据库、内存分配、WAS服务 器的配置以及应用程序的设计。对于一个标准的J2EE应用,一个请求到来时,往往需要经过多次转发: 网络 Web服务器Web容

6、器 EJB容器 数据库。而每一次转发,都可能造成请求处理的瓶颈,使 得应用程序整体性能下降。如果我们把每一次转发的待处理资源都看成一个队列,如下图:待处理资源队列对于WAS调优,要记住的一个基本原则就是,使得在队列中等待的请求的数量最小化。在实践中 我们发现,为了达到这个目的,最有效的配置方式就是使得队列成为一个“漏斗”。也就是说,越靠近客户端的队列,其容量越大,而后面的队列,其容量要略小于或等于前面的队列。3.2 WAS主要的调优参数3.2.1 WAS服务器参数Web Server的最大并发用户:这个设置是在conf/httpd.conf这个文件里面配置的。在Unix系统中,对应的属性是Ma

7、xClient; 在Windows系统中,对应的属性是ThreadsPerChild。Web Container的最大、最小并发用户:在管理控制台中点击应用程序服务器 serverl 线程池WebContainer,根据观察的性能情况 和应用情况输入合适的最小、最大进程数。对象请求代理(ORB)的线程池大小:在管理控制台中点击应用程序服务器 serverl ORB服务 线程池,根据观察的性能情况和 应用情况输入合适的最小、最大进程数。设置数据库的连接池属性:JDBC提供者 数据库JDBC驱动名称 数据源 数据源名称连接池,根据观察的性能情况和 应用情况输入合适的最小、最大连接数。JVM堆参数设

8、置的性能调优:应用程序服务器 serverl 进程定义 Java虚拟机,根据硬件物理内存和应用情况输入合适 的初始堆大小、最大堆大小。ORB参数调用方式的性能调优:应用程序服务器 serverl ORB服务选中按引用传递。关闭动态加载开关:企业应用程序 应用名称 关闭启动类重新装入开关。关闭会话序列化,应用程序服务器 serverl 会话管理 分布式环境设置 分布式会话选择 无即可。3.2.2 JVM的参数WAS在HP和Solaris上使用的是Sun提供的JVM,在其他平台使用的是IBM自己的JVM,建议使 用WAS自带的JVM,因为在产品支持等方面会获得更多地优势Heapsize (-Xms

9、 和-Xmx):heapsize的大小依赖于系统平台和具体的应用等多种因素。最大heapsize需要小于机器的物理 内存,一般来说,设置最大heapsize为512m是一个常见的起点。同时,在生产环境中,最好将Xms 设置为小于Xmx的值。GC(Garbage Collection,自动垃圾回收):一般来说,良好的GC状态需要保证相邻两次垃圾回收的平均间隔时间应当是单次垃圾回收所需时 间的至少5-6倍。GC的调优是通过在模拟压力的情况下不断调整最大最小heapsize来实现的。Heap Fragmentation (heap 碎片):heap碎片的问题在JVM中存在大对象的情况下尤为突出。减少

10、碎片的方法包括调整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核

11、,那么你一 个Application Server可以设置的最小值和最大值可以分别为40、80。但是一般考虑到能充分利用 CPU和Memory,或者为不同的应用启用不同的application server, 一台Pc Server上并不仅有这么 一个appserver,而且还有别的进程在占用着CPU,所以默认的10到50(Linux系统上25个)是一 个比较合适的值,当然更准确的值需要通过性能测试来确定。在进行性能测试的时候,如果吞吐率不 是很满意,或者在TPV中看到线程池占用一直是最大值,不要立刻就调大线程池的设置一一往往吞吐 率会更一步下降。这时候要注意CPU占用率的情况、vmstat的

12、r列值,特别是System状态占用率的 情况,如果接近10%,甚至超过10%,那么可以肯定系统在进程切换上面消耗的资源太多了。下调线 程池的大小反而会提升吞吐率,而且会由于吞吐率的提升降低页面平均响应时间。3.2.4 Data Source对Data Source的优化包括两个方面。一是JDBC Driver的选取,尽可能应使用Type 4的JDBC driver,这种driver是纯java的,适用于client/server模式,并提供比type2和legacy/CLI的driver更好的性能。另一方面是Database连接池的参数设置,主要包括最大和最小连接以及 timeout的设置。具

13、体的设置于应用程序的特性和并发用户量相关,一般来说,可设置最小连接为1且 最大连接为30,作为一个继续调优的起点。Application Server将在使用该数据源的每个应用程序服务器中创建连接池的单独实例。例如: 如果运行包含三个服务器的集群,这三个服务器都使用myDataSource,并且myDataSource的“最 大连接数”设置为10,那么可生成多达30个连接(3个服务器乘以10个连接)。3.2.5其他除了 JVM,Web Container和Data Source之外,WAS的性能调优还包括很多其他方面的内容, 如 JMS、EJB、Session、Dynamic Cache 等等

14、。四、监控工具4.1 WAS自带的TPVWAS中免费提供的Tivoli Performance Viewer (TPV)允许客户对关键资源(如JVM、Web容器 和EJB容器以及远程连接池)进行监视。显示从本地或远程应用服务器收集的PMI (Performance Monitoring Infrastructure )数据摘要报告:表格方式查看性能模块:巧 vbsMir vwtpain -licrovoft Int wsnt Rsplorvr函其战! * 4MiaXAO)VtoOD- o 回.割企厂* -?* 回 a 弓, 7fr j s45“.“ G OBi Gc -iJCf*MKaDtHm

15、.*图形方式查看性能模块:ejb Memods Connection PoolThread Pool Performance Modules田田田 I- JDBC Connection PoolsffiIm n. .cs ecEnable modules in the WebSphereAdministrative Consolesession Manage Poolstion Manager plicationsI uftAppHcationiliC liervlets事 Snoop Servlet fflOnI 匚 Tr中(喊“/ RguesKount Reset To Zero Clea

16、r Buffer Use this button to switch between table and graphical viewrnrffi 匚 auoteWSWQuoteWS ffi 厂 SamplesGallery#Gal 3 P SamplesGailery#Gal 石 厂 TradeApplication#Trr- rrn但是TPV有一些明显缺点:WAS自带TPV的缺点.doc4.2 Java性能监测工具Jprofiler/Jprobe:JProfiler是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。JProfiler直 觉式的GUI让

17、你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让你得以 对heap walker作资源回收器的root analysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未 被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整 合精灵以便剖析浏览器的Java外挂功能。JProbe是一个完全为Java设计的解析器,为servlet、JSP和EJB应用代码提供了强大的Java性能分 析、内存纠错、代码覆盖及线程分析功能。主要用于识别内存泄漏、智能化内存分析、垃圾回收分析 等用于JVM生成

18、的信息的工具还包括有:用于VerboseGC分析:IBM Monitoring and Diagnostic Tools for Java - Garbage Collection and Memory Visualizer (GCMV):.csv一个详细的GC数据可视化器,用于分析并绘制所有IBM详细GC日志一一Xtgc输出(并且可扩展到分析 和绘制其他形式的输入)。它提供了广泛的详细GC数据值的图形显示,并处理optthruput、optavgpause和 gencon GC模式。它具有原始日志、表格式数据和图表视图,并且可以将数据保存到jpeg或.csv文件(用于 导出到电子表格)。请参

19、阅IBM Support Assistant中的完整描述。输入:verbosegc 日志输出:图形表示形式、html、jpeg或csv文件支持:此工具由IBM提供支持,目前是用于其所在领域的主要工具。IBM Pattern Modeling and Analysis Tool (PMAT) for Java Garbage Collector :分析IBM详细GC跟踪,分析Java堆使用情况,并基于Java堆使用情况的模式建模提供重要配置建议。此工具先于上面的 IBM Monitoring and Diagnostic Tools for Java - Garbage Collection a

20、nd MemoryVisualizer (1),并提供了一个可能相当有用的不同透视图。请参阅IBM Support Assistant或alphaWorks中的完整描述。输入:verbosegc 日志输出:verbosegc日志的图形或表格表示形式其他功能:关于JVM参数的一般建议支持:技术预览版,按原样提供。Diagnostic Tool for Java Garbage Collector通过读取详细垃圾回收的输出,并产生文本和图形可视化表示形式及相关统计信息,从而帮助检查运行在 JVM下的应用程序的垃圾回收特征。请参阅alphaWorks中的完整描述。输入:verbosegc输出:文本和

21、图形可视化表示形式支持:按原样提供的工具。用于 Java 转储/javacore:IBM Thread and Monitor Dump Analyzer (TMDA)分析一个或多个Java线程转储或javacore,并诊断监视器锁和线程活动,以便确定挂起、死锁和资源争 用或监视器瓶颈的根源。请参阅IBM Support Assistant或alphaWorks中的完整描述。输入:用于显示相关线程历史记录的单个或多个javacore输出:基于GUI的视图其他信息:关于 Analysis of hangs, deadlocks, and resource contention or monito

22、r bottlenecks using IBM Thread and Monitor Dump Analyzer for Java Technology 的网络广播支持:技术预览版,按原样提供,但是是该领域的主要工具。ThreadAnalyzer提供Java线程转储或javacore的分析,例如来自WebSphere Application Server的转储或javacore。可 以在不同的级别分析线程使用情况,从高级图形视图开始,然后深入到各个线程的详细记录。如果线程转储中存 在任何死锁,ThreadAnalyzer将检测并报告它们。此工具先于上面的IBM Thread and Monit

23、or Dump Analyzer 工具(4),但是其功能已集成到后者之中,后者正在成为该领域的主要工具。请参阅IBM Support Assistant中的完整描述。输入:Java线程转储/javacore 输出:线程的图形视图、加载多个线程转储以显示线程历史记录的能力 支持:技术预览版,按原样提供,但是是该领域的主要工具。此工具可能会逐步淘汰;请尽可能使用IBM Thread and Monitor Dump Analyzer用于线程:IBM Lock Analyzer for Java旨在对动态应用程序执行锁分析,以便突出具有可能影响性能的锁争用的线程。此工具由两个包组成:1. 第一个包与

24、平台相关,并提供到JVM的连接,以便收集有关正在运行的应用程序的锁统计信息。这个包 在运行时随同要监视的应用程序一起进行加载。2. 第二个包与平台无关,并提供了图形用户界面。该图形用户界面连接到平台包,并提供所需的控制和分析以确定性能糟糕的锁。请参阅alphaWorks中的完整描述。输入:从JVM收集的统计信息输出:锁的图形视图支持:按原样提供的工具。用于堆转储:Memory Dump Diagnostic for Java (MDD4J)分析正在运行WebSphere Application Server或任何其他独立Java应用程序的JVM中常见格式的内存 转储(堆转储)。内存转储分析旨在

25、确定Java堆中可能是内存泄露根源的数据结构。该分析还确定应用程序的 Java堆占用空间的主要肇事者和它们的所属关系。此工具能够分析从遇到OutOfMemoryError问题的生产环境 应用程序服务器中获得的非常大的内存转储(将需要2 GB或更多的RAM)。MDD4J扩展了下面较旧的IBM HeapAnalyzer (8)的功能,尽管两个工具的用户界面完全不同。请参阅IBM Support Assistant中的完整描述。输入:来自虚拟机(JVM)的内存转储(堆转储)输出:交互式报告,其中显示主要的内存泄露可疑之处,以及有关这些泄露的详细信息。其他功能:操作单个转储。有些版本提供了多个转储的比

26、较分析。支持:此工具由IBM提供支持,目前是用于其所在领域的主要工具。在本文编写之际,IBM Support Assistant 中的最新版本为Beta版。HeapAnalyzerHeapAnalyzer读取单个Java内存转储(堆转储),并使您能够浏览转储以查看其内容。此工具是上面的 Memory Dump Diagnostic for Java (MDD4J)工具(7)的前身,后者现在包含前者的大多数功能。当时, HeapAnalyzer中的原始树浏览功能比在MDD4J中更加灵活。另一方面,HeapAnalyzer缺乏MDD4J中的某些更 完善的泄露嫌疑检测算法,并且不支持多个转储的比较分

27、析。请参阅alphaWorks中的完整描述。输入:单个java堆转储输出:可疑对象的图形视图和堆浏览器支持:按原样提供的工具。HeapRootsHeapRoots读取Java堆转储文件并提供用于分析数据的命令。这些命令对数据运行算法,或查询有关该数 据的信息。HeapRoots提供了命令行交互式界面,您可以在其中输入命令并获取结果。请参阅alphaWorks中的完整描述。输入:堆转储文件输出:可疑对象的图形视图和堆浏览器 支持:按原样提供的工具。用于系统/核心转储:IBM Monitoring and Diagnostic Tools for Java - Dump Analyzer一个可扩展

28、的工具框架,它读取IBM JVM产生的系统转储或核心文件,并针对该转储运行各种各样的分析 模块以诊断常见问题,或提供有关该JVM和当前运行在该JVM中的任何中间件或应用程序的内部状态的深入信 息。目前,提供了用于对诸如死锁、挂起、崩溃、内存情况等常见JVM问题执行基本分析功能的模块。作为对 该基本工具的补充,WebSphere Application! Server Modules for Dump Analyzer提供了附加的模块,可显示 JVM 中的 WebSphere Application Server 运行时的一般状态,以及有关多个 WebSphere Application Ser

29、ver 子 系统的详细信息。请参阅IBM Support Assistant中的完整描述。输入:由JVM附带的jextract工具进行预处理的格式化系统转储输出:显示一个报告,其中包含由指定的分析模块提取的信息,还包含有关潜在问题的观察结果的简短摘要,以 及一个提供深入信息的详细信息部分。其他功能:提供交互式模式以手动检查转储的内容。使得用户能够编写自己的新的专门分析模块并将模块添加到 该工具。支持:此工具由IBM提供支持,目前是用于其所在领域的主要工具。4.1内存监控在WAS的TPV里面可以监控jvm内存的使用情况。此外,可以通过GC日志观察Websphere的内 存使用情况。4.2日志监测工具IBM 的 heap 分析器 Heap Analyzer、GCCollector4.3其他工具1. Loadrunner2. WASMON3. SiteScope4. WebSphere Application Server Programming5. IBM Tivoli Composite Application Manager6. IBM Tivoli Monitor7. WebGate8. Nmon9. Problem Diagnostics Lab Toolkit

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号