Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-4645

High memory consumption with JIT

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Critical Critical
    • None
    • 7.29.0.Final
    • executable model
    • None
    • 2019 Week 44-46 (from Okt 28), 2019 Week 47-49 (from Nov 18), 2020 Week 04-06 (from Jan 20)
    • 5
    • Show
      git clone https://github.com/rsynek/drools-memory-leak-reproducer follow the readme there.
    • NEW
    • NEW

      Employee Rostering example for OptaPlanner shows excessive memory consumption, which is connected with Drools score calculation.

      Please see the reproducer - running it without drools JIT finishes on time with 3GB of memory while with drools JIT being active it fails due to "GC overhead limit exceeded" despite the fact it god twice as much memory.

      Logging (add -Dlogback.level.org.optaplanner=trace to the execute_jit.sh script) showed there is a huge pillar move changing ~hundreds of entities which takes seconds to calculate score. During this move's evaluation, the memory consumption increases to a point when GC takes over and later fails.

      Memory sampling and heap dump investigation showed there are ~10^7 objects of org.drools.core.reteoo.FromNodeLeftTuple class, taking more memory than any other data type in the VM.

      See the attached screenshots.

              mfusco@redhat.com Mario Fusco
              rsynek@redhat.com Radovan Synek (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: