Details
-
Improvement
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
Description
We should add PerfDisableSharedMem to default JVM params. The JVM will save stats to a memory mapped file when reaching a safepoint. This is performed synchronously and the JVM remains paused while this action takes place. Occasionally the OS will stall the calling thread while this happens resulting in significant impact to worst case JVM pauses. By disabling the save in the JVM these mysterious multi-second pauses disappear.
The behavior is outlined in this article. Another manifestation is significant time spent in sys during GC pauses. In the linked test you'll notice multiple seconds spent in sys during the longest pauses.