您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > WebSphere Process Server V6.2 性能调优
WebSphereProcessServerV6.2性能调优,第1部分:调优参数介绍引言WPS是运行于WebSphereApplicationServer(WAS)之上的业务流程集成服务,WAS中的各种参数的设置都会对WPS的运行性能产生直接影响。本文基于WPSV6.2版本详细给出可能影响WPS运行性能的主要参数的介绍以及调优建议。影响WPS运行性能的主要参数的分类:追踪和日志相关的参数Java虚拟机(JVM)相关的参数消息驱动的bean(MDB)激活规范相关的参数MQ侦听器端口(ListenerPort)相关的参数线程池大小相关的参数JavaMessageService(JMS)连接池相关的参数数据源连接池大小相关的参数数据源预处理语句(preparedstatement)缓冲大小相关的参数消息引擎相关的参数开发模式限于篇幅有限,本文无法全面的给出应用以上参数的详细场景,只能较系统的介绍并给出一些建议,本系列的后续文章将给出更多调整这些参数的应用场景。追踪和日志相关的参数追踪和日志是进行问题分析最重要的手段之一,越详细的追踪和日志可以帮助用户和WPS开发、支持人员获得更多的运行时信息,但同时也带来了较大的I/O资源消耗,降低了WPS的性能。因此在不需要进行问题分析时应该关闭追踪和日志。针对WPSV6.2,应该考虑以下追踪和日志的参数:(1)启动和关闭追踪日志的参数您可以通过管理控制台进行设置:故障诊断记录和跟踪server名称更改日志详细信息级别(图1)在配置(Configuration)和运行时(Runtimes)页面都有相同的窗口用于设置追踪日志,配置页面和运行时页面不同之处在于在配置页面设置的追踪日志需要重启服务器才能生效,而在运行时页面设置的追踪日志不需要重启服务器,可以即时生效。为了优化性能,建议在配置和运行时页面同时设置*=all=disabled,这意味着所有的追踪都会被关闭,这样可以最大限度的降低I/O带来的资源消耗。当然如果需要查看SystemOut.log文件中的日志,可以使用WPS缺省跟踪字符串*=info,如果需要更多信息可以依次设为配置(config)和详细信息(detail),也可以依次设置审计(audit)、警告(warning)、严重(severe)、致命(fatal)来减少信息打印到SystemOut.log日志文件中。如果您设置从*=fine到*=all,将启动跟踪输出到trace.log文件中,消耗掉大量的I/O资源。建议您根据需要尽量减少信息输出,尤其是不要开启追踪,从而减少I/O带来的性能下降。图1.设置日志详细信息级别(2)开闭PMI日志性能监控基础结构(PMI)是WAS和WebSphere系列产品(如WebSphereProcessServer、Portal、Commerce等等)的核心监控基础结构。WebSpherePMI提供的性能数据有助于监视和调整应用程序服务器性能。PMI提供解释运行时和应用程序资源行为的一组全面的数据。例如,PMI提供数据库连接池大小、servlet响应时间、EnterpriseJavaBeans(EJB)方法响应时间、Java虚拟机(JVM)垃圾回收时间以及CPU使用量等等。可以使用此数据来了解线程池和连接池等的运行时资源使用模式以及应用程序组件(如servlet、JSP和企业bean)的性能特性。使用PMI数据,可以识别并修正应用程序服务器中的性能瓶颈。例如,Java数据库连接(JDBC)连接池中的某个PMI统计是从预编译语句高速缓存废弃的语句数。可使用此统计来调整预编译语句高速缓存大小,以使废弃数减至最小并改进数据库查询性能。当启用PMI进行监控时会带来一定的性能开销,因此建议在不需要监控的时候禁用所有统计信息,以提高性能。您可以通过管理控制台进行设置:监视和调整性能监视基础结构(PMI)server名称(图2)选择“无”(None)禁用所有统计信息。图2.PMI设置页面(3)启动和关闭跨组件追踪(Cross-ComponentTracing)跨组件追踪是WPS特有的一个日志追踪功能,您可以使用此功能从SystemOut.log或trace.log日志追踪中识别与WPS或WESB的模块(modules)和组件(components)相关的数据。您可以从trace.log中查看在SCA处理中产生的错误信息,时间信息以及错误数据和运行时的异常,您还可以找到WPS的SCA组件的输入输出数据,并且通过WID提供的工具帮助您进行问题诊断。WPS跨组件追踪提供两个模式:开启:此选项将开启SCA处理的追踪。所有SCA追踪数据将写入SystemOut.log和trace.log文件。开启并输出数据快照:此选项除了具有开启功能外还会将SCA组件的数据输入和输出信息存储在logs\XCT目录下,方便您查看和问题分析。启动跨组件追踪将消耗I/O资源,尤其是启动数据快照模式将会有更大的I/O操作将快照输出到文件。因此建议在不需要调试时关闭跨组件追踪功能。您可以通过管理控制台进行设置:故障诊断跨组件跟踪(图3)图3.跨组件追踪页面(4)启动和关闭IBM服务日志(servicelogs)IBM服务日志包含写入SystemOut.log流的WebSphereApplicationServer消息和一些包含扩展服务信息的特殊消息,那些信息在分析问题时可能非常重要。一个服务日志用于节点上的所有WASJava虚拟机(JVM),包括所有应用程序服务器。以二进制格式保存IBM服务日志。使用“日志和跟踪分析器”或Showlog工具来查看IBM服务日志。服务日志将会造成I/O瓶颈,在生产环境必须关闭。您可以通过管理控制台进行设置:日志和跟踪server名称IBM服务日志(图4)图4.IBM服务日志设置页面调整Java虚拟机(JVM)相关的参数您可以通过管理控制台进行JVM相关的设置:服务器应用程序服务器server名称服务器基础结构Java和进程管理进程定义Java虚拟机(图5)(1)调整Java对象垃圾回收(GC)规则IBMJVM默认的JavaGC规则是标记-清除-整理(mark-sweep-compact),GenerationalConcurrent是IBM®Java5.0之后引入的新的JavaGC规则,该规则在许多情况下通过调整短生命周期对象和长生命周期对象所占用Java堆的空间大小来提高性能,您可以通过在通用JVM参数(GenericJVMarguments)中输入-Xgcpolicy:gencon来启动generationalconcurrent(gencon)规则(图5)。图5.Java虚拟机设置页面(2)调整Java堆栈大小在调整Java堆栈大小时您需要主要考虑三个方面:初始Java堆栈大小。您可以通过填入通用JVM参数(InitailHeapSize)输入框来设置。(图5)最大Java堆栈大小。您可以通过填入最大堆大小(MaximumHeapSize)输入框来设置。(图5)初始堆大小用于指定JVM代码可使用的初始堆大小(以兆字节计)。增加最小堆大小可改进启动,少发生垃圾回收的次数,并且可实现10%的性能增益。通常,增加Java堆的大小会改进吞吐量,直到堆不再驻留在物理内存中。当堆开始交换到磁盘后,Java性能将大幅下降。短生命周期对象所占用的Java堆栈大小,当您使用generationalconcurrent(gencon)规则JavaGC的时候,需要设置短生命周期对象所占用的Java堆栈大小,整个Java堆栈可分为两部分,短生命周期对象所占用的Java堆栈和长生命周期对象所占用的Java堆栈。如果您的应用中含有很多短时间内就会完成的事务,则应该将短生命周期对象所占用Java堆的空间设置较大。你可以在通用JVM参数(GenericJVMarguments)中输入三个参数:-Xmnssize:初始化的短生命周期对象所占用的Java堆栈大小-Xmnxsize:最大的短生命周期对象所占用的Java堆栈大小-Xmnsize:固定短生命周期对象所占用的Java堆栈大小MessageDrivenBean(MDB)激活规范相关的参数在WPS(WAS)中有两种MDB激活规范,针对每一种MDB激活规范,都有两个关键参数需要进行调整:maxConcurrency和maxBatchSize。maxConrurrency用于调整消息驱动的bean的最大实例数。缺省情况下,并发MDB实例的最大数目设置为10。在生产环境中这个值偏小,需要调整以增加并发处理能力。但是也并非越大越好,还要基于可用资源的情况进行设定,最大并发性限制可防止在临时构建消息时启动过多的MDB实例。maxBatchSize用于调整消息驱动的bean的最大批处理大小。缺省情况下,一次只将单条消息传递给消息驱动的bean实例。可以通过将消息成批传递给消息驱动的bean来提高性能。于是,每个消息驱动的bean实例一次就会接收许多消息(消息数的范围是1到批处理大小)。如果与消息驱动的bean相关联的可用消息数(队列深度)始终都很多,那么更改最大并发性可能会对您有利。下面我们介绍这两种激活规范的用途和调整方法:(1)J2C激活规范J2C激活规范用于使用外部资源适配器来部署消息驱动的bean。如果您要将消息驱动的bean用作Java连接器体系结构(JCA)1.5资源适配器上的侦听器,而不是缺省消息传递JMS提供程序,那么使用J2C激活规范。您可以通过管理控制台进行设置:资源资源适配器J2C激活规范激活规范名称J2C激活规范定制属性(图6)图6.J2C激活规范设置页面您也可以通过管理控制台这样进行设置:资源资源适配器资源适配器名称其他属性J2C激活规范J2C激活规范名称J2C激活规范定制属性(图7)图7.J2C激活规范设置页面(2)JMS激活规范在WPS或WAS中,消息驱动的Bean与其目标之间的接口是由JMS激活规范提供的。JMS激活规范与一个或多个消息驱动的bean关联,并为它们提供接收消息所需的配置。您可以通过管理控制台进行设置:资源JMS激活规范激活规范名称(图8)图8.JMS激活规范设置页面MQ侦听器端口(ListenerPort)相关的参数WPS使用MQ监听器端口为MQ或MQJMS绑定(binding)读入消息。每个侦听器端口由一个消息驱动Bean(MessageDrivenBean)使用,从关联的目标自动接收消息。MQ监听器端口中的最大会话(maximumsessions)属性可以控制读入消息的并发性能。每个会话相应于一个单独的侦听器线程,并因此控制并发处理的消息数。如果您希望按严格的消息顺序来处理消息,则将值设置为1,这样在任何时候都只有1个线程在处理消息。当服务器未充分利用机器的可用容量,并且您不需要按特定消息顺序来处理消息时,请调整此参数。如果您希望同步处理多个消息(称为“消息并发性”),则将此属性设置为大于1的值。尽可能将此值保持在低值,以防止重载客户机应用程序。对于存在运行时间很短的事务的100%JMS工作负载来说,一个好的起始点是每个处理器2到4个会话。如果存在运行时间较长的事务,则您可能需要更多会话,这些会话应该通过实践来确定。您可以通过管理控制台进行设置:服务器应用程序服务器通信消息传递消息侦听器服务其他属性侦听器端口侦听器端口名称(图9)图9.MQ侦听器端口设置页面线程池大小相关的参数对于每个server,有三个线程池的参数需要调整:DefaultORB.thread.poolWebContainerDefault线程池中的线程用于分配给MDB的实例使用,除非您单独指定其他的线程池。这意味着Default线程池的大小要比较大,尤其是当您增大激活规范的maxConccurency参数时。ORB(对象请求代理,ObjectRequestBroker)线程池用于运行ORB请求,如远程EJB调用
本文标题:WebSphere Process Server V6.2 性能调优
链接地址:https://www.777doc.com/doc-5014084 .html