This is information about the usage of the com.wily.introscope.agent.simpleInstanceCounter.referenceTrackingLimit, introduced in APM 9.0.5.
When monitoring instance counts, the following error may occur:
[WARN] [IntroscopeAgent.Agent] SimpleInstanceCounter: while tracking instances of type
com.mycompany.myclass, too many instances are being tracked in a short interval. Clamp limit of 25000 has reached and tracking new instances will stop. To raise clamp limit, add property com.wily.introscope.agent.simpleInstanceCounter.referenceTrackingLimit
Valid for both Java and .NET. Introscope agent 9.0.5 or higher.
This information supercedes the APM Known Issues document for accuracy as property is incorrectly documented, and document does not state that this can be used with Java agent.
When monitoring instance counts, we have introduced a limit of 25,000 instances per class for performance reasons.
Each instance monitored creates one weak reference in the JVM/CLR and a high number of these can have the following consequences:
- Increased garbage collection (GC) due to increased heap usage.
- Possible out of heap memory.
The value can be overridden if you want to lower or increase the limit.
There is no limit to the value you can put.
The steps are as follows:
- Open the IntroscopeAgent.profile
- Add this property as shown
and provide a value, where the value is the limit of instances per class you want to track.
- Restart the application as this is necessary for the change to take effect
Remember that this is a per-class limit, so if you allow the limit to 500,000, this is tracking 500,000 instances of each class. This is therefore a possible 500,000 weak references per class.