It is possible that the inference you are using is causing a lot of
calculation. That's driven by what's in sample-dental-ontology-rdfxml.owl.
Andy
On 01/07/16 14:33, Wen, Chen wrote:
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?