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…

     

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

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注