WebLogic Server 性能及调整
调整 WebLogic JMS 存储转发
在 WebLogic Server 9.0 版或更高版本中,JMS 提供了高级存储转发能力,以实现从本地服务器实例到远程 JMS 目标的高性能消息转发。请参阅“配置和管理 WebLogic 存储转发”中的了解存储转发服务。
下列部分提供有关如何实现存储转发(Store-and-Forward,简称 SAF)应用程序的最佳性能的信息:
最佳实践
如果远程目标的可用性已经很高,则避免使用 SAF。JMS 客户端可直接发送到远程目标。请在远程目标可用性不高的情况下使用 SAF,例如网络不稳定,或维护计划不同。
向远程目标转发消息时,要使用性能较高的 JMS SAF 功能,不要使用消息传递桥。一般而言,JMS SAF 代理要比消息传递桥快得多。以非持久性恰好一次模式发送消息时的配置是一个例外。
| 注意: |
向外部目标和 WebLogic 9.0 之前版本中的目标存储转发消息时,仍需使用消息传递桥。 |
为 JMS SAF 和 Web Service 可靠消息传递(Web Services Reliable Messaging,简称 WS-RM)代理配置单独的 SAF 代理,以简化管理和调整过程。
在子系统之间共享相同的 WebLogic 存储,可增强需要持久性的子系统的性能。例如,包括 SAF 和 JMS 操作的事务、包括多个 SAF 目标的事务以及包括 SAF 和 EJB 的事务。请参阅调整 WebLogic 持久性存储。
调整提示
把导入目标定位到多个 SAF 代理,以在可用 SAF 代理中实现消息发送的负载平衡。
为处理小型消息的应用程序增加 JMS SAF Window Size。默认情况下,JMS SAF 代理将转发最多包含 10 条消息的批处理消息。对于小型消息而言,通过增加每个批处理中要转发的消息数目,有可能将性能提高两倍或三倍。对小型消息而言,较适合的 Window Size 初始值为 100。届时可以针对环境优化此值。
| 注意: |
为处理大型消息的应用程序更改 Window Size 不大可能会提高性能,我们不推荐这种做法。Window Size 也调整 WS-RM SAF 行为,因此为 Both 类型的 SAF 代理调整此参数可能并不合适。 |
增加 JMS SAF Window Interval。默认情况下,JMS SAF 代理的 Window Interval 值为 0,它在消息到达时立刻转发消息。这样会降低性能,因为它能让有效的 Window size 比配置值小得多。对于 Window Interval 而言,更适当的初始值为 500 毫秒。届时可以针对环境优化此值。在此上下文中,小型消息不足几 K,而大型消息则属于数十 K 一类。
| 注意: |
只有在转发器能够一收到消息就将其转发的情况下,更改 Window Interval 才能提高性能。在这种情况下,转发器会暂停以累积多个消息,然后将它们作为一批进行转发,而非立即转发刚刚收到的消息。生成的较大批处理大小提高了转发吞吐量,降低了整体系统磁盘和 CPU 的使用率,但也使滞后性更为严重。 |
如果应用程序可允许重复消息,请为导入目标设置 Non-Persistent QOS 值到 At-Least-Once。