Thank you Andy. This machine has 64G memory. Below is the model2 config. Do you
see anything wrong?
<#model2> a ja:InfModel;
ja:baseModel
[a ja:MemoryModel ;
ja:content [ja:externalContent
<file:///E:/sample-dental-ontology-rdfxml.owl>]] ;
ja:reasoner
[ ja:reasonerURL
<http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
.
-----Original Message-----
From: Andy Seaborne [mailto:[email protected]]
Sent: Thursday, June 30, 2016 4:35 PM
To: [email protected]
Subject: Re: High CPU usage with Apache Jena Fuseki
On 30/06/16 18:51, Wen, Chen wrote:
> Hi,
> I am having a problem with fuseki-server. Every time when I try to do an
> ontology based query or just click on "count triples in all graphs", the CPU
> runs on almost 100% and hangs there. I have to terminate the process to get
> CPU usage back down.
>
> I have a customized config.ttl for tdb:
> <#tdb> rdf:type fuseki:Service ;
> fuseki:name "tdb" ; # http://host/inf
> fuseki:serviceQuery "sparql" ; # SPARQL query service
> fuseki:serviceQuery "query" ; # SPARQL query service
> (alt name)
> fuseki:serviceUpdate "update" ; # SPARQL update service
> fuseki:serviceUpload "upload" ; # Non-SPARQL upload
> service
> fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store
> protocol (read and write)
> # A separate read-only graph store endpoint:
> fuseki:serviceReadGraphStore "get" ; # SPARQL Graph store
> protocol (read only)
> fuseki:dataset <#dataset2> ; #select which set to
> .
>
> tdb:GraphTDB rdfs:subClassOf ja:Model .
>
> <#dataset2> rdf:type ja:RDFDataset ;
> ja:defaultGraph <#model2>;
> .
Where does <#model2> go to in the config?
>
> And I also increased JVM memory as below in fuseki-server.bat:
> java -cp jena-tdb-3.1.0.jar:jena-arq-3.1.0.jar -Xms1g -Xmx15g
> -XX:NewSize=4g -XX:MaxNewSize=4g -XX:SurvivorRatio=8 -jar
> fuseki-server.jar %*
Only -jar is needed, not -cp
How big is the physical RAM in the machine?
If it is say 16G, then -Xmx15g is not a good idea as it may force the OS to
swap the java heap.
For TDB, much of the caching is off heap so -Xmx15g detracting from that.
Allow 2G per TDB database + 2G for Fuseki.
> I have only 124 tuples loaded. And It works if I do a query without any
> specific criteria like:
> select ?s ?p ?o
> where
> {
> ?s ?p ?o .
> }
> limit 100
>
> However if I do a simple ontology specific query, the CPU goes up high and
> cannot recover anymore:
> SELECT ?patient
> WHERE
> {
> ?patient <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
> <http://sample.org/dental-ontology/RIDO_0000083> .
> }
> limit 100
>
> Am I missing anything? Can somebody advise?
>