Out Of Memory (PermGen) when CA APM Java Agent is enabled

Document ID : KB000092728
Last Modified Date : 02/05/2018
Show Technical Document Details
Issue:
Application Server experienced Out Of Memory (PermGen) after deploying CA APM Java Agent.

Following statement was logged repeatedly (over 53k times) in agent's AutoProbe.log:

Processing class com/firsthop/common/util/genclass/GeneratedComponentxxxxx.
Environment:
CA Application Performance Management (APM) 10.x
 
Cause:
These classes below are dynamically created frequently, consuming more PermGen space and as a result causing it to run out of memory

class com/firsthop/common/util/genclass/GeneratedComponentxxxxxxxxxxx

When CA APM Java Agent is enabled, the additional instrumentation would increase the class file size which are loaded in the PermGen space, hence accelerating the out of memory occurrence. The out of memory issue would still happen eventually without CA APM Java Agent enabled, though in a more gradual pace.

 
Resolution:
1. You can raise a defect with the company that provided the component that creates the classes : com/firsthop/common/util/genclass/GeneratedComponentxxxxxxxxxxxxx, and request solution from the 3rd party end.

2. Meanwhile you can skip above classes from instrumentation to minimize PermGen space overhead due to agent instrumentation.

For example, you can create a custom PBD (custom.pbd) with the following Skip statement:

SkipPackagePrefix: com.firsthop.common.util.genclass SkipIntelligentInstrumentationPackagePrefix: com.firsthop.common.util.genclass

Notes: Skipping these classes will not lose any agent features. These classes are instrumented by Smart Instrumentation, and skipping them will just eliminate transaction traces of these components. The impact is minimal as the transaction trace will still have it's calling and called components.