Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Support for ShenandoahGC in non unified jvm logging format #198

Closed
jborgers opened this issue Jun 8, 2018 · 17 comments
Closed

Support for ShenandoahGC in non unified jvm logging format #198

jborgers opened this issue Jun 8, 2018 · 17 comments
Milestone

Comments

@jborgers
Copy link

jborgers commented Jun 8, 2018

Hi,

As a GC tuner I'd like GCViewer to support ShenandoahGC, the ultra low pause time collector.
See https://wiki.openjdk.java.net/display/shenandoah/Main

Best, Jeroen

@chewiebug
Copy link
Owner

chewiebug commented Jun 10, 2018 via email

@jborgers
Copy link
Author

Hi Jorg,
Ah, missed it. Thanks, I will check it out.
Regards,
Jeroen

@jborgers
Copy link
Author

Hi Jorg,

It fails to parse the gc logfile, I get:

INFO [DataReaderFacade]: GCViewer version 1.36-SNAPSHOT (2018-05-30T19:10:38+0000)
SEVERE [DataReaderFactory]: Failed to recognize file format.
content:
14458.511: [Concurrent marking 1968M->1973M(2048M), 8.679 ms]
14458.520: [Concurrent precleaning 1975M->1975M(2048M), 0.162 ms]
14458.522: [Pause Final Mark 1978M->166M(2048M), 30.514 ms]
14458.553: [Concurrent reset bitmaps 167M->171M(2048M), 1.421 ms]
14467.156: [Pause Init Mark, 1.715 ms]
14467.158: [Concurrent marking 1966M->1980M(2048M), 12.657 ms]
14467.171: [Pause Final Mark 1980M->174M(2048M), 0.558 ms]
14467.172: [Concurrent reset bitmaps 174M->178M(2048M), 0.659 ms]
14475.315: [Pause Init Mark, 1.830 ms]
..

These are the first 3 lines in de log:
OpenJDK 64-Bit Server VM (25.161-b14) for linux-amd64 JRE (1.8.0_161-b14), built on Jan 9 2018 19:54:33 by "mockbuild" with gcc 4.8.5 20150623 (Red Hat 4.8.5-16)
Memory: 4k page, physical 8002012k(4357532k free), swap 2097148k(1656904k free)
CommandLine flags: -XX:HeapDumpPath=/work -XX:InitialHeapSize=2147483648 -XX:LogFile=/log/jvm.log -XX:+LogVMOutput -XX:+ManagementServer -XX:MaxHeapSize=2147483648 -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+UnlockDiagnosticVMOptions -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseNUMA -XX:+UseShenandoahGC

Regards,
Jeroen

@chewiebug
Copy link
Owner

chewiebug commented Jun 12, 2018 via email

@chewiebug chewiebug changed the title Support for ShenandoahGC Support for ShenandoahGC in non unified jvm logging format Jun 12, 2018
@jborgers
Copy link
Author

Hi Jorg,

Right :-)
The (commercial) product is not ready for JDK 9 yet.
Will attach 2 fragments.
gc-tcp-begin.log
gc-tcp-middle.log
Is this good enough?

Regards,
Jeroen

@chewiebug
Copy link
Owner

chewiebug commented Jun 25, 2018 via email

@jborgers
Copy link
Author

Hi Jörg,

Ah, great, will try.
Good point, I will ask the team to put the extra param in.

Regards,
Jeroen

@chewiebug chewiebug added this to the 1.36 milestone Aug 1, 2018
@jborgers
Copy link
Author

jborgers commented Sep 4, 2018

Hi Jörg,

See attachment.
gc_server.log.1.current.zip

I cannot get the tool analyze the file. I get:
INFO [DataReaderFacade]: GCViewer version 1.36-SNAPSHOT (2018-05-30T19:10:38+0000)
SEVERE [DataReaderFactory]: Failed to recognize file format.

Regards,
Jeroen

@chewiebug
Copy link
Owner

chewiebug commented Sep 6, 2018 via email

@chewiebug
Copy link
Owner

Hi Jeroen,

I have pushed the fix. The latest SNAPSHOT version is able to parse your sample file.

Regards,
Jörg

@jborgers
Copy link
Author

jborgers commented Sep 7, 2018

Hi Jörg,

Great! it works. Very nice.

What I however not understand is why the results are different in GCEasy. There the max gc pause is 0,029 s. while in GCViewer it is 0,020 s.

I will attach two more Shenandoah gc log files for which GCViewer shows several Warnings; it would be nice if those get fixed as well.

Regards,
Jeroen

@jborgers
Copy link
Author

jborgers commented Sep 7, 2018

@chewiebug
Copy link
Owner

Great to hear, that it works!

What I however not understand is why the results are different in GCEasy. There the max gc pause is 0,029 s. while in GCViewer it is 0,020 s.

I have done some comparing numbers with the results gceasy.io provides. I don't really understand the differences.

Comparing numbers with "Shenandoah Collection Phases Statistics" in gceasy and "Event details" in GCViewer, I see no difference.

"Shenandoah GC Time" -> "Pause Time" shows different numbers. I'd expect them to match the "Shenandoah Collection Phases Statistics" and GCViewers "Pause" -> "Total Pause" numbers, but they dont' (apart from the total pause time of 12.54s).

I will attach two more Shenandoah gc log files for which GCViewer shows several Warnings; it would be nice if those get fixed as well.

I'll have a look.

Regards,
Jörg

@jborgers
Copy link
Author

jborgers commented Feb 1, 2019

Hi,

In the lastest version (2018-10-23) I don't get to see anything useful when loading our Shenandoah gc log file. Only ParseExceptions. I attached a log file.
gc_Shenandoah_Tue.log.0.zip
Regards, Jeroen

@chewiebug
Copy link
Owner

I have improved the parser. I think, it won't parse the latest sample you attached, because Shenandoah changed it's output significantly.

Please open another issue, if you find issues with Shenandoah, again.

@chewiebug
Copy link
Owner

By the way: There is a new release 1.36

@jborgers
Copy link
Author

jborgers commented Dec 2, 2019 via email

sparrowzoo pushed a commit to sparrowzoo/GCViewer that referenced this issue Dec 28, 2020
sparrowzoo pushed a commit to sparrowzoo/GCViewer that referenced this issue Dec 28, 2020
sparrowzoo pushed a commit to sparrowzoo/GCViewer that referenced this issue Dec 28, 2020
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants