【问题标题】:(ILOG) IBM ODM 8.5 How to improve Rule Execution Server Performance?(ILOG) IBM ODM 8.5 如何提高规则执行服务器性能?
【发布时间】:2014-03-12 14:42:06
【问题描述】:

我正在开发一个大型规则引擎项目。部署规则和 xom 规则执行后,服务器没有响应或响应时间变长,有时会死机。

我在 WebSphere 服务器上这样设置堆大小:-XX:MaxPermSize:1024m -Xms2048m -Xmx2048m

还有其他方法可以配置它以使其性能更好吗?因为有时我必须重新启动相关计算机才能安全工作。

【问题讨论】:

    标签: websphere rule-engine


    【解决方案1】:

    您使用的是 Rete 执行模式吗? 99% 的时间您将使用 Sequential,或者可能是 Fastpath,具体取决于多种因素。除非您使用正向规则链接,否则很少有人需要 Rete。

    不幸的是,默认情况下,当您在 Rule Designer 中将规则任务添加到规则流时,它会将执行模式设置为 Rete。

    因此,要检查您需要使用哪种执行模式,请参阅 here 以获取要在您的决策服务中执行的清单。

    【讨论】:

      【解决方案2】:

      查看 BPM DeveloperWorks 文章 Improve performance for IBM Operational Decision Manager, Part 1: Reduce rule execution time,了解有关 ODM 性能改进的建议,以及 Improve performance of rule execution and Rule Execution Server (RES) for ODM and JRules

      此外,从 ODM 8.7 开始的默认执行模式是 FastPath,它应该为大多数用例提供最佳性能。您可以在 Rule Designer 中设置默认执行模式,方法是单击 Window > Preferences > Rule Designer > Ruleflow。

      【讨论】:

        【解决方案3】:

        在我当前的项目中,我同时使用了 RetePlus 和 Sequential 算法。以下是我的印象:

        1. RetePlus = 仅适用于决策表,一旦它优化了评估规则的关键路径。
        2. Sequential = 非常适合简单的计算和原子规则(操作规则)。

        您可以在一个编排中结合这两种方法。我在我们的项目中以 纳秒 的性能做到了这一点,相信我。

        总的来说,这完全取决于您的业务模块和编排特征。也许您应该审查并改进您的规则(您是在业务规则中访问外部实体还是存储库 - 这会降低您的吞吐量)。

        RAM 内存也很重要,但还不够。提高您的业务规则的质量,特别是在您的语言表达中。也许它们太复杂或多次计算太多。

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-06
          • 2021-04-18
          相关资源
          最近更新 更多