Hi Mike,

Is Blazegraph instances running within Java 9+ JVM ?
I assume they are configured using G1GC garbage collector?
Did you also try enabling the -XX+UseStringDeduplication to see if it can at least help a little and reduce some of the heap overhead on long lived strings?

Also, has the team ever seen any Humongous objects fragmenting the old gen? Many sometimes can cause the heap to be fragmented as mentioned within

There's also a few things to consider within that G1GC article that might be worth looking into or thinking about from a data <--> memory perspective since you don't have much control over heap usage in many places within Blazegraph.

Hope this helps a bit.  If I think of any other quick patches I'll let you know.