ID 515213 - Geolib3-MT exhibits excessive memory usage when the cacheSoftLimit is reached well before garbage collection

Follow

Problem summary:

The Geolib3-MT runtime's caching strategy requires user tuning through render settings that have unintuitive effects memory consumption and render time, specfically the combination of sceneTraversal.cache.cacheSoftLimit and .collectionFrequency. The natural way of attempting to configure the runtime for more aggressive eviction (akin to the classic Geolib3 runtime) is to reduce cacheSoftLimit to a 'small' value, but doing so without sufficiently reducing the garbage collection interval actually results in a significant increase in memory consumption.

Steps to reproduce:

  1. Render a fast-cooking scene graph using Geolib3-MT with renderSettings.sceneTraversal.useCachePrepopulation disabled (and optionally renderSettings.sceneTraversal.verboseLogging enabled to see memory consumption stats).
  2. Repeat, progressively reducing the value of sceneTraversal.cache.cacheSoftLimit without reducing sceneTraversal.cache.collectionFrequency.

Expected behaviour:

Peak render memory consumption reduces, at least up to a point.

Actual behaviour:

Peak render memory consumption may initially reduce, but subsequently rises substantially.

Workaround:

Determine appropriate combinations of values for cacheSoftLimit and collectionFrequency for a given Op recipe.

Tested versions/platforms:

  • All versions with Geolib3-MT, including 3.5v1 and 5.0v3  - Affected
     
Reproduced by support:
  • Katana 5.0v3 - CentOS 7, Windows 10
  • Katana 5.0v1 - CentOS 7
  • Katana 4.5v3 - CentOS 7
  • Katana 4.5v1 - CentOS 7
  • Katana 4.0v8 - CentOS 7 
  • Katana 4.0v1 - CentOS 7
  • Katana 3.5v1 - CentOS 7, Windows 10
Earliest version tested
Katana 3.5v1 - Geolib3-MT did not exist before this version.

    We're sorry to hear that

    Please tell us why