Leftover memory segments that are no longer needed are an ordinary byproduct of Java processing. Each JVM includes a feature that identifies and gathers these segments, making the virtual memory space available for later use.
Known as garbage collection, the tactics and details of this capability differ among JVM implementations from vendor to vendor. If such garbage collection is not run often enough or is not successful enough at recovering unneeded memory, the JVM may fail with an out-of-memory exception. This may indicate a design or implementation flaw, or may only indicate that demand for virtual memory under the current workload exceeds supply.
The Pega-RULES agent periodically forces some memory segments to be available for garbage collection, using the standard activity Code-.SystemCleaner.
JVMs can support verbose logging of garbage collection operations, allowing skilled IT staff to review and analyze details of memory usage. The following prconfig Dynamic System Setting identifies the verbose garbage collection log file directory:
Dynamic System Setting: prconfig/GarbageCollection/Logfile/default |
The prconfig/GarbageCollection/Logfile/default setting directs the System Management Application to the directory containing the VerboseGC logs, for garbage collection performance analysis. The following describes the valid values for this Dynamic System Setting: |
Value Description |
Specifies the directory where the verboseGC output is located for this particular node. This value is used by the System Management Application to display garbage collection statistics. This value must match the JVM verbose GC directory. |
Caution: Change this setting with care. Prconfig Dynamic System Settings can have broad impact on the operation of your system. |
Each PRPC requestor's clipboard occupies virtual memory. Good clipboard management practices include:
Using the Performance tool, you can monitor the size in bytes of your clipboard.
If garbage collection completes but fails to produce enough results, the system adds an alert of type PEG0028 to the Alert log.
You can use the PegaRULES Log Analyzer, a standalone Web application available from the Pega Exchange, to analyze GC logs. See PDN article Understanding the PegaRULES Log Analyzer
On a multinode cluster, or on a production system with a single PRPC node, install the System Management application on an application server (and JVM) separate from those where PRPC runs. Even when the System Management application is lightly used, when sharing an application server it can cause frequent and unwanted garbage collection operations that can affect performance.
JVM settings can affect performance of your system. For guidance on JVM settings, use the Installation Guide for your platform, and see these PDN articles: