Unexplained Jumps In Response Time "Fixed" By Disabling Tiered Compilation
vitalyd at gmail.com
Tue May 31 15:40:58 UTC 2016
IIRC, Tiered compilation tracks method warmth/hotness using a decayed
counter (sampled at safepoints). A method may become temporarily cold, get
evicted, then become hot again -- rinse & repeat. Given that some traffic
shifted away from the server that experienced the perf degradation, that
may make these methods go cold.
I would try bumping the code cache size more aggressively (and possibly
disable tiered compilation -- I believe C2 does not track method warmth at
safepoints so assuming a sufficiently large code cache to accommodate all
hot methods for the duration of the service, it should not experience code
On Tue, May 31, 2016 at 11:30 AM, kirk.pepperdine at gmail.com <
kirk.pepperdine at gmail.com> wrote:
> Mostly lurking…
> >> 2) What would trigger the HotSpot compiler to keep recompiling these
> >> methods over and over?
> > Code cache is full. Either that, or there is a nasty bug in the
> > compiler.
> or not full but fragmentated. Code cache full should induce aggressive
> code cache cleaning but it shouldn’t be cleaning methods that are actually
> being used. That said, if you’re not seeing methods being made
> >> 3) Would increasing the Code Cache size help (it seems to revert to its
> >> old max of 48m when Tiered Compilation is disabled)? I doubt it, but, I
> >> am giving it try in my dev environment.
> > Yes.
More information about the hotspot-dev