Hello,
I'm using neo4j version 2026.01.4 enterprise edition (cypher version 5.25).
I noticed that when my system is fully idle and the Neo4j database is supposed to have minimal load (if not 0 - only internal processes), the applicative heap usage memory graph shows a sawtooth pattern - it slowly rises over the span of ~1h, until the G1 garbage-collector triggers and reclaims unused objects/references, sharply dropping the memory usage, only to then start slowly rising again - this behavior repeats indefinitely.
Memory usage graph (sawtooth pattern is the idle part):
G1 GC invocation graph: (the straight line is just an averaging of the numbers - It only triggered once - when the memory drops):
For the record - I don't think this is a memory leak so much as just a memory junkyard being fully allocated and released in a recurring fashion.
I'm wondering if this behavior is expected? Is this chunk of heap taken by the system (I'm guessing) being subtracted from our production heap free memory?? If so - Is there something we can do about it?
This is troubling, because with the usage of G1 GC that generally only triggers a full-collect when it needs to (i.e. typically ~80-90% memory consumption), this regularly (and more specifically - hourly) brings us dangerously close to the max heap size - no matter how high/low it was arbitrarily configured to be.
In my book this is a recipe for disaster, but I'd like to hear from you and see if anyone else experienced this and if this is expected or could be mitigated in some way.
Thanks very much in advance,
Naveh.

