Re: exist multiple cores

Eduard Drenth <[email protected]> Fri, 17 Oct 2025 06:37:37 +0000
Newsgroups gmane.text.xml.exist
Message-ID <VE1P189MB0957AEF9BC2E95C9FC97B943F1F6A@VE1P189MB0957.EURP189.PROD.OUTLOOK.COM>
--===============3011186499361842210==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_VE1P189MB0957AEF9BC2E95C9FC97B943F1F6AVE1P189MB0957EURP_"

--_000_VE1P189MB0957AEF9BC2E95C9FC97B943F1F6AVE1P189MB0957EURP_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Dear all,

Luckily I found settings that boost performance for our situation. I share =
them so they can be of use.

(My question about one large versus many small remains, many small will I t=
hink make collection() a lot faster.)

The most important is caching collection (in our case only changing with a =
new docker build):

declare variable $teidictjson:data :=3D
     if ($teidictjson:collcache) then
        if (fn:not(fn:empty(cache:get("teidictjson","coll")))) then
            cache:get("teidictjson","coll")
        else (let $r :=3D cache:put("teidictjson","coll",collection($config=
:data-root))
                return cache:get("teidictjson","coll")
              )
     else collection($config:data-root);

docker-compose.yml, I suspect less memory would do as well:

   deploy:
      replicas: 1
      resources:
        limits:
          memory: "8GB"
      restart_policy:
        condition: any
    environment:
      # NOTE This overrides the maintained JAVA_TOOL_OPTIONS in the Dockerf=
ile from the exist-db community
      # This is the only way to override settings, for example ARG CACHE_ME=
M=3D1024 in your Dockerfile won't work, neither will setting cache in conf.=
xml
      - JAVA_TOOL_OPTIONS=3D-Dfile.encoding=3DUTF8 -Dsun.jnu.encoding=3DUTF=
-8 -Djava.awt.headless=3Dtrue -Dorg.exist.db-connection.cacheSize=3D2048M -=
Dorg.exist.db-connection.pool.max=3D20 -Dlog4j.configurationFile=3D/exist/e=
tc/log4j2.xml -Dexist.home=3D/exist -Dexist.configurationFile=3D/exist/etc/=
conf.xml -Djetty.home=3D/exist -Dexist.jetty.config=3D/exist/etc/jetty/stan=
dard.enabled-jetty-configs -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+Ex=
itOnOutOfMemoryError -XX:MaxRAMPercentage=3D75.0

Regards, Eduard


________________________________
From: Eduard Drenth <[email protected]>
Sent: Thursday, October 16, 2025 5:33 PM
To: Lars Windauer <[email protected]>; Exist-open <Exist-ope=
[email protected]>
Subject: Re: [Exist-open] exist multiple cores

Have been trying to upload a 386M document into exist 6.4.0 in order to tes=
t query performance compared to querying 70000 separate documents.

Question before I continue trying different settings/jvm's/etc.:


  *
Is querying one large document expected to be significantly faster compared=
 to querying many separate small documents?

Regards, Eduard
________________________________
From: Eduard Drenth <[email protected]>
Sent: Thursday, October 16, 2025 6:46 AM
To: Lars Windauer <[email protected]>; Exist-open <Exist-ope=
[email protected]>
Subject: Re: [Exist-open] exist multiple cores

Thanks, I understand it's hard to tell yes.

Could try this https://github.com/duncdrum/distroless-exist/blob/main/Docke=
rfile for java 21 with exist 6.4. But until now I rely on what is in docker=
 hub instead of building images myself.

Could queries be faster when I merge =B1 70.000 seperate TEI documents into=
 one teiCorpus document?

Regards, Eduard
________________________________
From: Lars Windauer <[email protected]>
Sent: Tuesday, October 14, 2025 12:28 PM
To: Eduard Drenth <[email protected]>; Exist-open <Exist-open@lists=
.sourceforge.net>
Subject: Re: [Exist-open] exist multiple cores

It=92s really weird why the app should be slow on a system with more ghz. T=
here must be some kind of other limitation in the new environment.

With regard to Java 21: Where did you read that eXist-db 6.x would be bound=
 to max Java 17? I know at least two people running eXist-db 6 with Java 21=
. I=92m aware of some discussion about some edge cases that could cause tro=
uble with Java 21 but afaik it=92s working fine at least for those two peop=
le. Did you ever try it yourself? Nevertheless, if the performance was fine=
 in the old environment but is not in the new one, the Java version will ve=
ry likely not be the problem because you did not run Java 21 in the old sys=
tem.

Sorry I can=92t help more but without actually looking in the new and old e=
nvironment and running a few tests it=92s kind of impossible to say, what t=
he issue could be.

Fingers crossed you can sort it out!

Best,

Lars



> On 8. Oct 2025, at 17:34, Eduard Drenth <[email protected]> wrote=
:
>
> Thanks for the info, good to know about one xquery being bound to one cor=
e.
>
> In the mean time we turned hyperthreading off, that helped, but not enoug=
h yet.
>
> It is weird, the new cpu is 3.8ghz compared to the old 2.4ghz.
>
> The queries seem cpu bound as top shows cpu percentage above 200%.
>
> Increasing memory does not help, IO does not seem to be a problem.
>
> It is doable for now, but I am happy that new hardware is being ordered, =
hope that helps.
>
> Unfortunately I cannot benefit from the many performance improvements in =
java either, because exist 6 is bound to java 17 max.
>
> Regards,
> Eduard Drenth, Software Architekt
>
> [email protected]
>
> Doelestrjitte 8
> 8911 DX  Ljouwert
> (058) 213 14 14
> +31 62 094 34 28
> https://www.fryske-akademy.nl/
> https://frysker.nl/
> https://frisian.eu/<Outlook-d4b4dmlh.svg>
> gpg: https://keyserver.ubuntu.com/pks/lookup?search=3Deduard+drenth&finge=
rprint=3Don&op=3Dindex
> From: Lars Windauer <[email protected]>
> Sent: Tuesday, October 7, 2025 10:26 PM
> To: Exist-open <[email protected]>
> Subject: Re: [Exist-open] exist multiple cores
>  Dear Eduard,
>
> eXist-db can benefit from multiple cores without the need to configure an=
ything. Having said this, please be aware that a single XQuery (dbbroker) c=
an always run on only one core! So a single XQuery can=92t utilise 20 cores=
 but on a 20 core system you can have 20 parallel queries that each use one=
 core.
>
> Can you provide us with information about the old and new environment? Gi=
gahertz of your CPUs, how much RAM does the system have and how much of thi=
s is assigned to eXist-db. What about the hard drives, is eXist-db running =
from a SSD with the same filesystem as in the old environment?
>
> Best,
>
> Lars
>
>
> > On 6. Oct 2025, at 16:42, Eduard Drenth <[email protected]> wro=
te:
> >
> > Dear all,
> >
> > We are in the process of migrating exist from our own hardware to a pro=
vider.
> >
> > Performance drops significantly, the main cause is that exist seems to =
be using one core only.
> >
> > Can exist benefit from multiple cores? And if yes, how is that configur=
ed?
> >
> > Regards,
> >
> > Eduard Drenth, Software Architekt
> >
> > [email protected]
> > _______________________________________________
> > Exist-open mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/exist-open
>
>
>
>
> _______________________________________________
> Exist-open mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/exist-open



--_000_VE1P189MB0957AEF9BC2E95C9FC97B943F1F6AVE1P189MB0957EURP_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
Dear all,</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
Luckily I found settings that boost performance for our situation. I share =
them so they can be of use.</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
(My question about one large versus many small remains, many small will I t=
hink make collection() a lot faster.)</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
The most important is caching collection (in our case only changing with a =
new docker build):</div>
<div class=3D"elementToProof">
<pre class=3D"elementToProof"><div class=3D"elementToProof" style=3D"white-=
space: pre; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Ca=
libri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><span =
style=3D"font-family: &quot;Courier New&quot;, monospace;">declare variable=
 $teidictjson:data :=3D<br> &nbsp; &nbsp; if ($teidictjson:collcache) then<=
br> &nbsp; &nbsp; &nbsp; &nbsp;if (fn:not(fn:empty(cache:get(&quot;teidictj=
son&quot;,&quot;coll&quot;)))) then<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;cache:get(&quot;teidictjson&quot;,&quot;coll&quot;)<br> &nbsp; &nbsp;=
 &nbsp; &nbsp;else (let $r :=3D cache:put(&quot;teidictjson&quot;,&quot;col=
l&quot;,collection($config:data-root))<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p; &nbsp; &nbsp; &nbsp;return cache:get(&quot;teidictjson&quot;,&quot;coll&=
quot;)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)<br> &nbsp; &nb=
sp; else collection($config:data-root);</span></div></pre>
</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
docker-compose.yml, I suspect less memory would do as well:</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;"><br>
</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp;deploy:</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; replicas: 1</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; resources:</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; &nbsp; limits:</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; memory: &quot;8GB&quot;</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; restart_policy:</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; &nbsp; condition: any</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; environment:</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; # NOTE This overrides the maintained JAVA_TOOL_OPTIONS in the Do=
ckerfile from the exist-db community</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; # This is the only way to override settings, for example ARG CAC=
HE_MEM=3D1024 in your Dockerfile won't work, neither will setting cache in =
conf.xml</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<span style=3D"font-family: &quot;Courier New&quot;, monospace;">&nbsp; &nb=
sp; &nbsp; - JAVA_TOOL_OPTIONS=3D-Dfile.encoding=3DUTF8 -Dsun.jnu.encoding=
=3DUTF-8 -Djava.awt.headless=3Dtrue -Dorg.exist.db-connection.cacheSize=3D2=
048M -Dorg.exist.db-connection.pool.max=3D20 -Dlog4j.configurationFile=3D/e=
xist/etc/log4j2.xml
 -Dexist.home=3D/exist -Dexist.configurationFile=3D/exist/etc/conf.xml -Dje=
tty.home=3D/exist -Dexist.jetty.config=3D/exist/etc/jetty/standard.enabled-=
jetty-configs -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+ExitOnOutOfMemo=
ryError -XX:MaxRAMPercentage=3D75.0</span></div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
Regards, Eduard</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Eduard Drenth &lt;edr=
[email protected]&gt;<br>
<b>Sent:</b> Thursday, October 16, 2025 5:33 PM<br>
<b>To:</b> Lars Windauer &lt;[email protected]&gt;; Exist-op=
en &lt;[email protected]&gt;<br>
<b>Subject:</b> Re: [Exist-open] exist multiple cores</font>
<div>&nbsp;</div>
</div>
<style type=3D"text/css" style=3D"display:none">
<!--
p
	{margin-top:0;
	margin-bottom:0}
-->
</style>
<div dir=3D"ltr">
<div class=3D"x_elementToProof" style=3D"font-family:Aptos,Aptos_EmbeddedFo=
nt,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:=
rgb(0,0,0)">
Have been trying to upload a 386M document into exist 6.4.0 in order to tes=
t query performance compared to querying 70000 separate documents.&nbsp;</d=
iv>
<div class=3D"x_elementToProof" style=3D"font-family:Aptos,Aptos_EmbeddedFo=
nt,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:=
rgb(0,0,0)">
<br>
</div>
<div class=3D"x_elementToProof" style=3D"font-family:Aptos,Aptos_EmbeddedFo=
nt,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:=
rgb(0,0,0)">
Question before I continue trying different settings/jvm's/etc.:</div>
<div class=3D"x_elementToProof" style=3D"font-family:Aptos,Aptos_EmbeddedFo=
nt,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:=
rgb(0,0,0)">
<br>
</div>
<ul data-editing-info=3D"{&quot;applyListStyleFromLevel&quot;:false,&quot;u=
norderedStyleType&quot;:2}" style=3D"margin-top:0px; margin-bottom:0px">
<li style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calib=
ri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0); list-style-type:=
&quot;- &quot;">
<div role=3D"presentation" class=3D"x_elementToProof">Is querying one large=
 document expected to be significantly faster compared to querying many sep=
arate small documents?</div>
</li></ul>
<div class=3D"x_elementToProof" style=3D"font-family:Aptos,Aptos_EmbeddedFo=
nt,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:=
rgb(0,0,0)">
<br>
</div>
<div class=3D"x_elementToProof" style=3D"font-family:Aptos,Aptos_EmbeddedFo=
nt,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:=
rgb(0,0,0)">
Regards, Eduard</div>
<div id=3D"x_appendonsend"></div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" =
color=3D"#000000" style=3D"font-size:11pt"><b>From:</b> Eduard Drenth &lt;e=
[email protected]&gt;<br>
<b>Sent:</b> Thursday, October 16, 2025 6:46 AM<br>
<b>To:</b> Lars Windauer &lt;[email protected]&gt;; Exist-op=
en &lt;[email protected]&gt;<br>
<b>Subject:</b> Re: [Exist-open] exist multiple cores</font>
<div>&nbsp;</div>
</div>
<style type=3D"text/css" style=3D"display:none">
<!--
p
	{margin-top:0;
	margin-bottom:0}
-->
</style>
<div dir=3D"ltr">
<div class=3D"x_x_elementToProof" style=3D"font-family:Aptos,Aptos_Embedded=
Font,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; colo=
r:rgb(0,0,0)">
Thanks, I understand it's hard to tell yes.</div>
<div class=3D"x_x_elementToProof" style=3D"font-family:Aptos,Aptos_Embedded=
Font,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; colo=
r:rgb(0,0,0)">
<br>
</div>
<div class=3D"x_x_elementToProof" style=3D"font-family:Aptos,Aptos_Embedded=
Font,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; colo=
r:rgb(0,0,0)">
Could try this <a href=3D"https://github.com/duncdrum/distroless-exist/blob=
/main/Dockerfile">
https://github.com/duncdrum/distroless-exist/blob/main/Dockerfile</a>&nbsp;=
for java 21 with exist 6.4. But until now I rely on what is in docker hub i=
nstead of building images myself.</div>
<div class=3D"x_x_elementToProof" style=3D"font-family:Aptos,Aptos_Embedded=
Font,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; colo=
r:rgb(0,0,0)">
<br>
</div>
<div class=3D"x_x_elementToProof" style=3D"font-family:Aptos,Aptos_Embedded=
Font,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; colo=
r:rgb(0,0,0)">
Could queries be faster when I merge =B1 70.000 seperate TEI documents into=
 one teiCorpus document?</div>
<div class=3D"x_x_elementToProof" style=3D"font-family:Aptos,Aptos_Embedded=
Font,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; colo=
r:rgb(0,0,0)">
<br>
</div>
<div class=3D"x_x_elementToProof" style=3D"font-family:Aptos,Aptos_Embedded=
Font,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; colo=
r:rgb(0,0,0)">
Regards, Eduard</div>
<div id=3D"x_x_appendonsend"></div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif=
" color=3D"#000000" style=3D"font-size:11pt"><b>From:</b> Lars Windauer &lt=
;[email protected]&gt;<br>
<b>Sent:</b> Tuesday, October 14, 2025 12:28 PM<br>
<b>To:</b> Eduard Drenth &lt;[email protected]&gt;; Exist-open &lt;=
[email protected]&gt;<br>
<b>Subject:</b> Re: [Exist-open] exist multiple cores</font>
<div>&nbsp;</div>
</div>
<div class=3D"x_x_BodyFragment"><font size=3D"2"><span style=3D"font-size:1=
1pt">
<div class=3D"x_x_PlainText">It=92s really weird why the app should be slow=
 on a system with more ghz. There must be some kind of other limitation in =
the new environment.<br>
<br>
With regard to Java 21: Where did you read that eXist-db 6.x would be bound=
 to max Java 17? I know at least two people running eXist-db 6 with Java 21=
. I=92m aware of some discussion about some edge cases that could cause tro=
uble with Java 21 but afaik it=92s working
 fine at least for those two people. Did you ever try it yourself? Neverthe=
less, if the performance was fine in the old environment but is not in the =
new one, the Java version will very likely not be the problem because you d=
id not run Java 21 in the old system.
<br>
<br>
Sorry I can=92t help more but without actually looking in the new and old e=
nvironment and running a few tests it=92s kind of impossible to say, what t=
he issue could be.
<br>
<br>
Fingers crossed you can sort it out! <br>
<br>
Best, <br>
<br>
Lars<br>
<br>
<br>
<br>
&gt; On 8. Oct 2025, at 17:34, Eduard Drenth &lt;[email protected]&=
gt; wrote:<br>
&gt; <br>
&gt; Thanks for the info, good to know about one xquery being bound to one =
core.<br>
&gt; <br>
&gt; In the mean time we turned hyperthreading off, that helped, but not en=
ough yet.<br>
&gt; <br>
&gt; It is weird, the new cpu is 3.8ghz compared to the old 2.4ghz.<br>
&gt; <br>
&gt; The queries seem cpu bound as top shows cpu percentage above 200%.<br>
&gt; <br>
&gt; Increasing memory does not help, IO does not seem to be a problem.<br>
&gt; <br>
&gt; It is doable for now, but I am happy that new hardware is being ordere=
d, hope that helps.<br>
&gt; <br>
&gt; Unfortunately I cannot benefit from the many performance improvements =
in java either, because exist 6 is bound to java 17 max.<br>
&gt; <br>
&gt; Regards,<br>
&gt; Eduard Drenth, Software Architekt<br>
&gt; <br>
&gt; [email protected]<br>
&gt; <br>
&gt; Doelestrjitte 8<br>
&gt; 8911 DX&nbsp; Ljouwert<br>
&gt; (058) 213 14 14<br>
&gt; +31 62 094 34 28<br>
&gt; <a href=3D"https://www.fryske-akademy.nl/">https://www.fryske-akademy.=
nl/</a><br>
&gt; <a href=3D"https://frysker.nl/">https://frysker.nl/</a><br>
&gt; https://frisian.eu/&lt;Outlook-d4b4dmlh.svg&gt;<br>
&gt; gpg: <a href=3D"https://keyserver.ubuntu.com/pks/lookup?search=3Deduar=
d+drenth&amp;fingerprint=3Don&amp;op=3Dindex">
https://keyserver.ubuntu.com/pks/lookup?search=3Deduard+drenth&amp;fingerpr=
int=3Don&amp;op=3Dindex</a><br>
&gt; From: Lars Windauer &lt;[email protected]&gt;<br>
&gt; Sent: Tuesday, October 7, 2025 10:26 PM<br>
&gt; To: Exist-open &lt;[email protected]&gt;<br>
&gt; Subject: Re: [Exist-open] exist multiple cores<br>
&gt;&nbsp; Dear Eduard, <br>
&gt; <br>
&gt; eXist-db can benefit from multiple cores without the need to configure=
 anything. Having said this, please be aware that a single XQuery (dbbroker=
) can always run on only one core! So a single XQuery can=92t utilise 20 co=
res but on a 20 core system you can have
 20 parallel queries that each use one core. <br>
&gt; <br>
&gt; Can you provide us with information about the old and new environment?=
 Gigahertz of your CPUs, how much RAM does the system have and how much of =
this is assigned to eXist-db. What about the hard drives, is eXist-db runni=
ng from a SSD with the same filesystem
 as in the old environment? <br>
&gt; <br>
&gt; Best, <br>
&gt; <br>
&gt; Lars<br>
&gt; <br>
&gt; <br>
&gt; &gt; On 6. Oct 2025, at 16:42, Eduard Drenth &lt;edrenth@fryske-akadem=
y.nl&gt; wrote:<br>
&gt; &gt; <br>
&gt; &gt; Dear all,<br>
&gt; &gt; <br>
&gt; &gt; We are in the process of migrating exist from our own hardware to=
 a provider.<br>
&gt; &gt; <br>
&gt; &gt; Performance drops significantly, the main cause is that exist see=
ms to be using one core only.<br>
&gt; &gt; <br>
&gt; &gt; Can exist benefit from multiple cores? And if yes, how is that co=
nfigured?<br>
&gt; &gt; <br>
&gt; &gt; Regards,<br>
&gt; &gt; <br>
&gt; &gt; Eduard Drenth, Software Architekt<br>
&gt; &gt; <br>
&gt; &gt; [email protected]<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Exist-open mailing list<br>
&gt; &gt; [email protected]<br>
&gt; &gt; <a href=3D"https://lists.sourceforge.net/lists/listinfo/exist-ope=
n">https://lists.sourceforge.net/lists/listinfo/exist-open</a><br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; Exist-open mailing list<br>
&gt; [email protected]<br>
&gt; <a href=3D"https://lists.sourceforge.net/lists/listinfo/exist-open">ht=
tps://lists.sourceforge.net/lists/listinfo/exist-open</a><br>
<br>
<br>
</div>
</span></font></div>
</div>
</div>
</body>
</html>

--_000_VE1P189MB0957AEF9BC2E95C9FC97B943F1F6AVE1P189MB0957EURP_--


--===============3011186499361842210==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============3011186499361842210==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Exist-open mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/exist-open

--===============3011186499361842210==--