There have been a few similar threads:

https://www.mail-archive.com/users@jena.apache.org/msg19871.html

https://www.mail-archive.com/users@jena.apache.org/msg18825.html

On Mon, 3 Jul 2023 at 15.20, Dave Reynolds <dave.e.reyno...@gmail.com>
wrote:

> We have a very strange problem with recent fuseki versions when running
> (in docker containers) on small machines. Suspect a jetty issue but it's
> not clear.
>
> Wondering if anyone has seen anything like this.
>
> This is a production service but with tiny data (~250k triples, ~60MB as
> NQuads). Runs on 4GB machines with java heap allocation of 500MB[1].
>
> We used to run using 3.16 on jdk 8 (AWS Corretto for the long term
> support) with no problems.
>
> Switching to fuseki 4.8.0 on jdk 11 the process grows in the space of a
> day or so to reach ~3GB of memory at which point the 4GB machine becomes
> unviable and things get OOM killed.
>
> The strange thing is that this growth happens when the system is
> answering no Sparql queries at all, just regular health ping checks and
> (prometheus) metrics scrapes from the monitoring systems.
>
> Furthermore the space being consumed is not visible to any of the JVM
> metrics:
> - Heap and and non-heap are stable at around 100MB total (mostly
> non-heap metaspace).
> - Mapped buffers stay at 50MB and remain long term stable.
> - Direct memory buffers being allocated up to around 500MB then being
> reclaimed. Since there are no sparql queries at all we assume this is
> jetty NIO buffers being churned as a result of the metric scrapes.
> However, this direct buffer behaviour seems stable, it cycles between 0
> and 500MB on approx a 10min cycle but is stable over a period of days
> and shows no leaks.
>
> Yet the java process grows from an initial 100MB to at least 3GB. This
> can occur in the space of a couple of hours or can take up to a day or
> two with no predictability in how fast.
>
> Presumably there is some low level JNI space allocated by Jetty (?)
> which is invisible to all the JVM metrics and is not being reliably
> reclaimed.
>
> Trying 4.6.0, which we've had less problems with elsewhere, that seems
> to grow to around 1GB (plus up to 0.5GB for the cycling direct memory
> buffers) and then stays stable (at least on a three day soak test).  We
> could live with allocating 1.5GB to a system that should only need a few
> 100MB but concerned that it may not be stable in the really long term
> and, in any case, would rather be able to update to more recent fuseki
> versions.
>
> Trying 4.8.0 on java 17 it grows rapidly to around 1GB again but then
> keeps ticking up slowly at random intervals. We project that it would
> take a few weeks to grow the scale it did under java 11 but it will
> still eventually kill the machine.
>
> Anyone seem anything remotely like this?
>
> Dave
>
> [1]  500M heap may be overkill but there can be some complex queries and
> that should still leave plenty of space for OS buffers etc in the
> remaining memory on a 4GB machine.
>
>
>
>

Reply via email to