WebSphere Process Server V6.2 性能调优,第 1 部分2

初始堆大小用于指定 JVM 代码可使用的初始堆大小 ( 以兆字节计 )。增加最小堆大小可改进启动,少发生垃圾回收的次数,并且可实现 10% 的性能增益。通常,增加 Java 堆的大小会改进吞吐量,直到堆不再驻留在物理内存中。当堆开始交换到磁盘后,Java 性能将大幅下降。

    短生命周期对象所占用的 Java 堆栈大小,当您使用 generational concurrent (gencon) 规则 Java GC 的时候,需要设置短生命周期对象所占用的 Java 堆栈大小,整个 Java 堆栈可分为两部分,短生命周期对象所占用的 Java 堆栈和长生命周期对象所占用的 Java 堆栈。如果您的应用中含有很多短时间内就会完成的事务,则应该将短生命周期对象所占用 Java 堆的空间设置较大。
你可以在通用 JVM 参数 (Generic JVM arguments) 中输入三个参数:
-Xmns size:
初始化的短生命周期对象所占用的 Java 堆栈大小 
-Xmnx size:
最大的短生命周期对象所占用的 Java 堆栈大小 
-Xmn size:
固定短生命周期对象所占用的 Java 堆栈大小

Message Driven Bean (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 侦听器端口 (Listener Port) 相关的参数

WPS 使用 MQ 监听器端口为 MQ 或 MQ JMS 绑定 (binding) 读入消息。每个侦听器端口由一个
消息驱动 Bean (Message Driven Bean) 使用,从关联的目标自动接收消息。MQ 监听器端口中的最大会话 (maximum sessions) 属性可以控制读入消息的并发性能。每个会话相应于一个单独的侦听器线程,并因此控制并发处理的消息数。如果您希望按严格的消息顺序来处理消息,则将值设置为 1,这样在任何时候都只有 1 个线程在处理消息。当服务器未充分利用机器的可用容量,并且您不需要按特定消息顺序来处理消息时,请调整此参数。
如果您希望同步处理多个消息 ( 称为“消息并发性“),则将此属性设置为大于 1 的值。尽可能将此值保持在低值,以防止重载客户机应用程序。对于存在运行时间很短的事务的 100% JMS 工作负载来说,一个好的起始点是每个处理器 2 到 4 个会话。如果存在运行时间较长的事务,则您可能需要更多会话,这些会话应该通过实践来确定。
您可以通过管理控制台进行设置:
服务器 > 应用程序服务器 > 通信 > 消息传递 > 消息侦听器服务 > 其他属性 > 侦听器端口 > 侦听器端口名称 ( 图 9)

图 9. MQ 侦听器端口设置页面


线程池大小相关的参数

对于每个 server,有三个线程池的参数需要调整:

    Default

    ORB.thread.pool

    WebContainer

Default 线程池中的线程用于分配给 MDB 的实例使用,除非您单独指定其他的线程池。这意味着 Default 线程池的大小要比较大,尤其是当您增大激活规范的 maxConccurency 参数时。

ORB (对象请求代理,Object Request Broker) 线程池用于运行 ORB 请求,如远程 EJB 调用。如果您有大量的远程 EJB 被调用,比如人工任务 API 被调用,您需要加大 ORB 线程池大小来提高远程 EJB 调用的并发处理能力。Web Container 线程池中的线程用于处理 HTTP 和 Web 服务的请求,且被所有应用共用,因此您需要增大线程池以提高 HTTP 和 Web 服务请求的并发处理能力。

您可以通过管理控制台进行设置:服务器 > 应用程序服务器 > 其他属性 > 线程池 ( 图 10)

图 10. 服务器线程池调整参数

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营