What happens when we turn off the object tracking in the instrumentation.config?
By commenting out ObjectTracker classes and ObjectTrackerWeight methods, there would be some data that will be missing from the J2EEMemory agent. What these classes do when enabled, is collect information regarding number of objects that gets created in the memory when initialized and destroyed after use for each request in the environment. However it does not affect data related to JVM heap usage and other data collected by the J2EEMemory agent.
On the dashboards, you would see all data except for memory usage objects for request. The response time for the requests, as well as other JVM memory metrics would still be collected.
Commenting out object tracking should not be automatically used to fix an overloading server issue (or high CPU/high memory). We need to first find what is causing the server to be overloaded in the first place, because it might not be related to object tracking. Instrumentation.config file provide 2 types of information enabling J2EE agent (memory agent) to track objects.
1) name of class/object to track
2) weighting for each tracked object, which indicate how much info is gathered on it, relative to the others
First, comment out the object tracking without removing the corresponding weighting information may have unexpected results. Secondly, by removing object tracking, we are disabling the collection of memory metrics, which essentially disables the memory agent, thus losing a core function of Performasure. However, disabling object tracking may improve CPU performance.
J2EEMemory Agent creates an object for each object that it tracks. The number of tracked objects increases with the ratio of tracked requests to sampled requests, which causes a memory overhead. The ObjectTrackerSampleRatio parameter, defined in the Object Tracking section of the <<FGL_CLIENT_HOME>>/config/J2EEAgent/<<platform>>/config/client/instrumentation.config file, limits the number of sampled objects that are tracked. With the default value of 10, ObjectTracker tracks objects for one out of ten sampled requests that are processed per thread.
This random request distribution provided by the ObjectTrackerSampleRatio limits the memory overhead that is incurred while monitoring and can be further refined to meet the needs of the monitoring requirements. A higher value will result in fewer tracked objects for sampled requests and decreased system overhead; whereas a lower value will track more, but at the expense of a higher overhead on the application server.