fix(web-app-xwiki): run single replica in swarm, raise mem_limit to 3g

Embedded Solr requires an exclusive Lucene index lock and the
distribution-flavor install is not concurrency-safe, so multiple
replicas sharing one Postgres DB and one NFS Solr index dir collide
(xwikidoc_pkey duplicate key, LockObtainFailedException) and the
superadmin probe gets HTTP 500 from an uninitialized replica. Pin to
replicas: 1 like jellyfin/mastodon/collabora; swarm reschedule keeps
failover.

Also raise mem_limit 2g to 3g: even an uncontended replica sits at
1.694GiB/2GiB (84.68%) at rest from the JVM working set, so 2g leaves
too little headroom (jellyfin runs 3g too). pids_limit stays 1024: a
single replica used only 224 threads, the 1021/1024 hits were purely
the contention storm that replicas: 1 removes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 4.8 committed 2026-07-20 05:45:26 +02:00
1 parent 6f64f247dc
commit 1dd153bad0
1 file changed
+3 -1
+3 -1
View File
@@ -57,8 +57,10 @@ xwiki:
no_stop_required: true
cpus: 1.0
mem_reservation: 1g
mem_limit: 2g
mem_limit: 3g
pids_limit: 1024
# nocheck: single-replica xwiki. Embedded Solr holds an exclusive Lucene index lock, so a shared NFS index dir yields LockObtainFailedException, and the distribution-flavor install is not concurrency-safe (xwikidoc_pkey duplicate key); multi-instance needs remote Solr plus JGroups.
replicas: 1
ports:
local:
http: 8054