WebSphere Process Server V6.2 性能调优,第 2 部分 多并发环境下的性能调优介绍2

激活规范的最大批处理大小 (Max Batch Size) 同样影响着性能。最大批处理大小是指在一批串行传递中可以为一个端点分配的消息数,它的默认值是 1。举例来说,如果您将”最大并发端点数”属性设为 10,将最大批处理大小属性设为 3,那么最多可以有 10 个端点且每个端点最多可以处理 3 条消息,从而分配给该 MDB 线程的消息总数就是 30 条。最大批处理大小参数决定了多少消息可以被一次性从消息层取出并传送给应用层(值得注意的是这并不意味着这是在一个事物内完成的,所以这个设置并不会影响事物处理的作用域)。为改善性能和可扩展性,特别是对大型多核系统,需要增加与 SCA 模块和长流程 (Long Running Process) 相关的激活规范的最大批处理大小参数,例如可以将其增加到 8。

如图 6 所示,可以在控制面板上通过以下路径查找并修改该参数:资源 > JMS > 激活规范 > 激活规范名称

图 6. 设置激活规范最大批次大小和最大并发端点参数

如果根据单个 JMS 激活规范部署了多个 MDB ,那么这些属性对于每个 MDB 都适用。

2 配置侦听器端口

如果使用 MQ ,通用 JMS 或 MQ JMS 绑定,则通过侦听器端口来配置消息队列和 MDB 间的连接。此时,最大会话 (Maximum Sessions) 属性同激活规范的最大并发端点数的作用是一致的。
该属性默认值是 1,通常需要将其增大到一个适当的值,具体的设置应取决于您的特定业务环境。如果大多数事务运行时间都很短,并且达到了 100% JMS 工作负载,那么可以考虑从每个处理器 2 到 4 个会话开始进行调优。如果有较长运行时间的事物存在,您可能需要更多会话。最大消息 (Maximum Messages) 属性决定了在同一上下文中一个 MDB 的 onMessage() 方法可以被调用多少次,即一个会话中可以处理的消息数量。

如图 7 所示,可以在控制面板上通过以下路径查找并修改该参数:服务器 > 应用程序服务器 > 通信 > 消息传递 > 消息侦听器服务 > 其他属性 > 侦听器端口 > 侦听器端口名称

图 7. 设置侦听器端口最大会话参数

每一个会话运行在一个侦听器端口线程中,而消息侦听器端口线程池又是共用的, 所以消息侦听器端口线程池大小应该远大于任意侦听器端口的最大会话属性。

图 8. 设置侦听器端口线程池最大线程参数

3 配置 MDB 线程池容量

线程池的大小直接影响到服务器并发运行应用程序的能力。举例来说,增加最大并发端点数或最大会话参数只能够保证从 JMS 或 MQ 队列中并发地读取消息;为了能够并发处理请求,还需要增加相应的线程池大小,从而允许更多的 MDB 线程并发运行。
一般情况下,需要进行调优的线程池有以下三个:Default ; ORB.thread.pool 和 WebContainer。可以通过在控制面板上访问 服务器 > 应用程序服务器 > 其他属性 > 线程池 来查看。

图 9. WPS 服务器线程池列表

MDB 工作被分派给从默认线程池 (Default) 中分配的线程。值得注意的是除非指定另外一个线程池,否则在这个应用服务器上的所有 MDB 共用这个线程池。这意味着默认的线程池大小需要大于,很有可能是显著地大于任意 MDB 的最大并发端点数。

图 10. 设置默认线程池最大大小参数

最大大小 (Maximum size) 参数定义了在线程池中最多能够维护的线程数量,它的默认值是 20。当使用 Tivoli Performance Viewer 进行监控时,请注意 PercentMaxed 参数,它代表了配置的线程被使用的次数。如果 PercentMaxed 参数一直保持在两位数,则需要考虑提高线程池的最大大小。下图是压力较低状态下的 Default 线程池性能参数列表。

图 11. 通过 Tivoli Performance Viewer 查看 PMI PercentMaxed

4 为 JMS MDB 配置专用线程池

运行在 WPS 上的很多任务共用默认的线程池,为提高性能,你可以根据需要为 JMS MDB 的运行指定专用的线程池。
请遵循以下的步骤为 JMS MDB 线程更改线程池:

1)在服务器上创建一个新的线程池,例如命名为 MDBThreadPool;

图 12. 创建新线程池

以下文章点击率最高

Loading…

     

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