hsperfdata causing long GC/safepoint times: Don't use mmap?

Evan Jones ejones at twitter.com
Thu Mar 26 21:08:18 UTC 2015


This problem does *not* happen if /tmp is on tmpfs (or if
/tmp/hsperfdata_user is symlinked to tmpfs).

It *does* happen on ext2, ext3, ext4, btrfs, and xfs. It is *extremely*
common on btrfs, and rare on xfs (but still seems to occur).

On Thu, Mar 26, 2015 at 1:54 PM, Dmitry Samersoff <
dmitry.samersoff at oracle.com> wrote:

> Evan,
>
> What filesystem do you use for /tmp ?
>
> Did you try to reproduce the problem with tmpfs?
>
> -Dmitry
>
> On 2015-03-26 18:14, Evan Jones wrote:
> > At Twitter, I recently discovered that the hsperfdata file that is
> created
> > by default by the JVM causes long safepoint and GC pauses. It turns out
> > that writes to mmap-ed files can block until disk I/O completes, even if
> > the I/O is to another disk. For details see:
> > http://www.evanjones.ca/jvm-mmap-pause.html
> >
> > We have been experimenting with adding the -XX:+PerfDisableSharedMem JVM
> > flag on a number of our latency sensitive services, and have seen a
> > significant improvement. Our JVM team (which I am *not* part of), is
> > investigating potential changes to the JVM to prevent this.
> >
> > Any suggestions for an approach to solving this problem that could be
> > accepted into Hotspot itself? Some options:
> >
> > * Make the location of this file configurable (this was set with
> > java.io.tmpdir for a time, but then was reverted; see
> > http://bugs.java.com/view_bug.do?bug_id=6447182)
> >
> > * Use shared memory that is not backed by a file?
> >
> > * Something else I'm not considering?
> >
> >
> > Thanks!
> >
> > Evan Jones
> >
>
>
> --
> Dmitry Samersoff
> Oracle Java development team, Saint Petersburg, Russia
> * I would love to change the world, but they won't give me the sources.
>


More information about the hotspot-runtime-dev mailing list