Strange safe-point banding behavior
kirk at kodewerk.com
Thu Feb 19 08:10:14 UTC 2015
I can’t say that I’ve taken this as far as I could as of yet but I think I can start to ask questions.
I’ve seen what I call a banding artifact in a number of GC logs. The latest prompted me to investigate further. In the latest case Application runtime is being reported very frequently a ~1 second. It is being reported some what less frequently every ~2 seconds. So that means a safe point is being called for very frequently at these times so in amongst all of the other application runtime data points these points from a solid line in the chart. Now there are intermixed runtimes that go longer than 2 seconds and of course they are shorter than 1 second.
When we looked at PrintSafepointStatistics we get “no vm operation” which means sstats->_vmop_type == -1 which implies that the VM_Operation has not been set.
Question is; why would a safepoint be called for with no VM_Operation? Looking at the code I would say it’s quite common. I’ve turned on safepoint tracing for other applications and have seen other even more bizarre banding patterns which all appear to be due to some regular behavior.
This happens on all recent (and most likely older) versions of the JVM.
More information about the hotspot-dev