Hi Piotr,
For that in-memory setup, I don't know of any changes that might lead to
increased memory use. Might it be related to the queries received?
Service Unavailable -->
That looks like a reverse proxy can't contact the Fuseki server. What's
the Fuseki server log say around that point?
The JVM will grow to 6G - or whatever you set the -Xmx to - before a
full GC cuts in.
Andy
Unrelated inline:
On 05/01/2022 11:49, Piotr Nowara wrote:
Hi Andy,
We are running Fuseki inside Kubernetes pod using our own Docker image on
Ubuntu 20.04 and eclipse-temurin:11-jre-focal.
The old RAM limit set in Kubernetes was 6GB which was more than enough
until we upgraded to 4.3.1.
Our Fuseki hosts four in-memory datasets. The biggest one has 1.6 million
triples (200 MB big when exporting to RDF/TTL file). The three others are
significantly smaller (less than 50k triples). Our datasets are used as
read-only data repositories. They are restored from S3-stored TTL backup
files when Fuseki restarts (see below for config TTL). Longest query takes
ca. 8 seconds, 90% of them complete in less than 20ms.
Thanks,
Piotr
Our config:
@prefix : <http://base/#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
...
no need for the declarations
...
Simpler and modernization:
:service1 a fuseki:Service ;
fuseki:dataset :dataset ;
fuseki:name "meta" ;
fuseki:serviceQuery "query" , "sparql" ;
fuseki:serviceReadGraphStore "get" ;
fuseki:serviceReadWriteGraphStore
"data" ;
fuseki:serviceUpdate "update" ;
fuseki:serviceUpload "upload" .
:dataset rdf:type ja:MemoryDataset ;
ja:data <file:./seed/meta-cdq-latest.ttl.gz>
.
and using
fuseki:endpoint [
fuseki:operation fuseki:query ;
fuseki:name "sparql"
];
fuseki:endpoint [
fuseki:operation fuseki:query ;
fuseki:name "query"
];
rather than
fuseki:serviceQuery "query" , "sparql" ;
or
:service1 a fuseki:Service ;
fuseki:endpoint [ fuseki:operation fuseki:query ] ;
fuseki:endpoint [ fuseki:operation fuseki:update ] ;
...
if you use the dataset as the operation endpoint. (service* adds both
for compatibility reasons).
Andy