Reporting of gc+stats
Justinas Dabravolskas
j at giedres.lt
Mon Feb 24 11:43:55 UTC 2020
Hello Roman,
---- On Fri, 21 Feb 2020 15:24:24 +0200 Roman Kennke <rkennke at redhat.com> wrote ----
> Hello Justinas,
>
> I apologize for the late reply.
>
> > hope this is the right place to ask a few more questions. Sorry if answers were simply overlooked.
>
> Sure, here is perfect. We usually don't take so long to reply. :-)
>
> > 1. I can't find an option for periodic printing of pacer statistics. (gc+stats prints just on exit?)
> > Pacers activity looks like the first indication of gc pressure. Don't you think it would be useful to get this information from gc log asap?
> > Maybe you can introduce ShenandoahPacerStatsPeriod flag for periodic printing of _delays histogram?
>
> That sounds like a good idea. We may actually want more more general
> periodic statistics, not only about pacing. I filed the following bug
> about it:
>
> https://bugs.openjdk.java.net/browse/JDK-8239786
Thank you, additional statistics sounds great and it will help identify gc related issues.
>
> > 1. How to interpret breakdown of roots scanning?
> > e.g.: "Scan Roots" took 327s, but I can't figure out what part exactly from breakdown. What I am missing?
>
> the individual parts 'S: *' are averages over all workers. That means if
> one tasks (here: CLDG Roots) is not very well parallelized, it will
> report a low average. Consider what will happen if it's perfectly
> serial, and we have 4 workers, 1 worker needs 320ms, but the others are
> basically idle or get almost no work. It will average to 80ms, but the
> total (reported in "Scan Roots") will add-up to 320+ms. We realize this
> is confusing and we should improve this.
>
> Does that answer your question?
It does. Though it is not obvious how to estimate actual impact of sub-phases to pause time from current log format.
Regards,
Justinas
>
> Thank you,
> Roman
>
>
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] Pause Init Mark (N) = 338.46 s (a = 51057 us) (n = 6629) (lvls, us = 4023, 45508, 50781, 56641, 88198)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] Accumulate Stats = 1.42 s (a = 214 us) (n = 6629) (lvls, us = 33, 182, 209, 236, 3329)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] Make Parsable = 6.10 s (a = 920 us) (n = 6629) (lvls, us = 55, 732, 891, 1074, 6075)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] Clear Liveness = 1.29 s (a = 195 us) (n = 6629) (lvls, us = 91, 168, 189, 211, 3251)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] Scan Roots = 327.02 s (a = 49332 us) (n = 6629) (lvls, us = 3613, 43945, 49023, 54688, 86252)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: Thread Roots = 6.68 s (a = 1008 us) (n = 6629) (lvls, us = 137, 869, 994, 1113, 9622)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: Universe Roots = 0.08 s (a = 12 us) (n = 6629) (lvls, us = 2, 8, 9, 13, 4443)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: JNI Roots = 0.37 s (a = 55 us) (n = 6629) (lvls, us = 4, 37, 46, 59, 8601)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: Synchronizer Roots = 0.00 s (a = 1 us) (n = 6629) (lvls, us = 0, 0, 0, 1, 22)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: Management Roots = 0.06 s (a = 8 us) (n = 6629) (lvls, us = 1, 3, 8, 11, 102)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: System Dict Roots = 0.54 s (a = 81 us) (n = 6629) (lvls, us = 16, 61, 74, 89, 4439)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: CLDG Roots = 80.66 s (a = 12167 us) (n = 6629) (lvls, us = 811, 9004, 11133, 14453, 27327)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] S: JVMTI Roots = 0.50 s (a = 75 us) (n = 6629) (lvls, us = 7, 48, 62, 79, 12281)
> > [2020-01-21T07:33:24.757-0500][info ][gc,stats ] Resize TLABs = 0.95 s (a = 143 us) (n = 6629) (lvls, us = 7, 104, 133, 172, 1513)
> >
>
>
More information about the shenandoah-dev
mailing list