Unexplained Jumps In Response Time "Fixed" By Disabling Tiered Compilation

Vitaly Davidovich 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
cache churn).

On Tue, May 31, 2016 at 11:30 AM, kirk.pepperdine at gmail.com <
kirk.pepperdine at gmail.com> wrote:

> Hi,
>
> 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
> non-entrant/zombie...
> >
> >> 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.
> >
> >>
>
> Regards,
> Kirk
>
>


More information about the hotspot-dev mailing list