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? https://github.com/blazegraph/database/blob/master/blazegraph-rpm/src/rpm/co...
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 https://www.oracle.com/technical-resources/articles/java/g1gc.html
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.
Thad https://www.linkedin.com/in/thadguidry/ https://calendly.com/thadguidry/