Out-of-Memory error with VBD
SummaryWhen adding Visual Business Director (VBD) nodes into VBD Services LP, the nodes throws Out-of-memory (OOM) error in the logs.
Error Messages2017-01-15 23:21:13,200 GMT*8*PEGA0028*8208616744*7730941132*bdc41075f470c42876a20e633c907601*NA*NA*NA*NA*NA*NA*NA*?*-1**2890*Service Thread*NA*com.pega.pegarules.management.internal.events.JVMNotificationManager*NA*NA*NA*NA*NA*NA*NA*NA*NA*NA*NA*NA*Collection usage threshold exceeded for long-lived object memory pool (G1 Old Gen) INFO:MemoryPool=G1 Old Gen;PoolType=long-lived object;Event=java.management.memory.collection.threshold.exceeded;TimeStamp=2017-01-15 23:21:13,200 GMT;Count=113;NotificationSequenceNo=99;Threshold=7730941132;Used=8208616744;Max=8589934592;Committed=8212447232;Init=8136949760;*
Steps to Reproduce
- Add a node or more nodes into VBD Services landing page.
- Observe the memory going high.
- Add 6 nodes to share workload, but all nodes soon OOM.
Root CauseOn startup, VBD is caching the IH Fact table, along with associated Dimensions.
User has seen the heap grow until OOM occurs when the user has a lot of IH data.
A large portion of the data being kept in memory, are dictionaries containing the values of string-based columns in the IH Fact table.
For example, pySubjectID, as well as the user's custom reporting fields.
Since VBD does not support the querying of these fields,only support querying dimensions and measurements, one can save memory by not loading these fields.
Published February 21, 2017 - Updated October 8, 2020