GC / safepoint pauses consuming more real time than user plus system
Evan Jones
ejones at twitter.com
Thu Mar 26 15:04:06 UTC 2015
I finally figured out the source of a problematic garbage collection pauses
that take more real time than user plus system time, on our systems that
are otherwise unloaded: It turns out that writes to the mmap-ed hsperfdata
file can block when the system is under heavy disk IO. Since safepoint and
GC threads increment counters in this file, it causes long safepoint and
garbage collection pauses.
In case anyone ever observes pauses that look like this, you may want to
add the -XX:+PerfDisableSharedMem JVM flag and see if that resolves them.
It has worked for our services.
See the following for more detail:
http://www.evanjones.ca/jvm-mmap-pause.html
Here is an example "suspicious" pause. I was seeing many of these, across
basically all of Twitter's services, which caused me to investigate the
issue.
2014-12-10T12:38:44.419+0000: 58758.830: [GC (Allocation Failure)[ParNew:
11868438K->103534K(13212096K), 0.7651580 secs]
12506389K->741669K(17406400K), 0.7652510 secs] [Times: user=0.36
sys=0.01, real=0.77 secs]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20150326/c32893cd/attachment.html>
More information about the hotspot-gc-use
mailing list