In the AppD metric browser for Java apps, there is a metric called Allocated-Objects (MB). I thought I understood what this was, but I'm getting some unexpected results after making a code change.
We had a service that had an allocation rate that was too high for the request volume, IMO, so we took a 1-minute flight recording in a test environment. Total allocation, according to the flight recording samples, was around 35GB. Based on where the samples were coming from, we made a code change. When we retested, the total allocation for the same test over 1-minute was only 9GB, approximately 75% less.
When we deployed the change and re-ran our endurance test, we saw an object allocation rate that was only slightly lower than the baseline. Dividing the allocation rate by the request volume, the number had only gone down from 12MB/req to 10MB/req.
We do not have verbose GC enabled, so I can't check against that.
What could be causing the numbers to be so similar? Is the allocation rate reported by AppD reliable?
thanks
Looks like my calculations were warped by this bug:
https://bugs.openjdk.org/browse/JDK-8307488?force_isolation=true
When I throw out of first sample of each thread, the results make a lot more sense.