Been having some performance issues and a lot of java.lang.OutOfMemoryError: GC overhead limit exceeded errors.
I have tried
-JAVA_OPTIONS=-Xmx2048m -Xms512m
and
- JVM_OPTS=-Xms800m -Xmx1600m
and
- CATALINA_OPTS=-Xms1024m -Xmx2048m
in the “environment:” section of “web:” service using image xwiki:10.11-postgres-tomcat ( https://hub.docker.com/_/xwiki/ )
When I look in the docker logs, I see this:
03-Jan-2019 17:54:39.547 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024m
How do I pass a higher setting?
We have 25 active users.
Exception in thread “http-nio-8080-Acceptor-0” java.lang.OutOfMemoryError: Java heap space
Every time that happens I have to restart the docker container 
FWIW I’ve followed the documentation (see GitHub - xwiki/xwiki-docker: Dockerfile to build and run XWiki on docker) and tried it with docker run --net=xwiki-nw --name xwiki -p 8080:8080 -v /tmp/xwiki:/usr/local/xwiki -e DB_USER=xwiki -e DB_PASSWORD=xwiki -e DB_DATABASE=xwiki -e DB_HOST=mysql-xwiki -e JAVA_OPTS="-Xmx2048m" xwiki:mysql-tomcat
.
When Tomcat starts I get:
04-Jan-2019 07:27:08.529 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.37
04-Jan-2019 07:27:08.535 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 12 2018 12:07:02 UTC
04-Jan-2019 07:27:08.536 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.37.0
04-Jan-2019 07:27:08.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
04-Jan-2019 07:27:08.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.9.125-linuxkit
04-Jan-2019 07:27:08.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
04-Jan-2019 07:27:08.538 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/java-8-openjdk-amd64/jre
04-Jan-2019 07:27:08.538 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_181-8u181-b13-2~deb9u1-b13
04-Jan-2019 07:27:08.539 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
04-Jan-2019 07:27:08.539 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
04-Jan-2019 07:27:08.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
04-Jan-2019 07:27:08.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
04-Jan-2019 07:27:08.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
04-Jan-2019 07:27:08.542 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx2048m
04-Jan-2019 07:27:08.542 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
04-Jan-2019 07:27:08.547 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
04-Jan-2019 07:27:08.547 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
04-Jan-2019 07:27:08.548 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024m
04-Jan-2019 07:27:08.548 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
04-Jan-2019 07:27:08.549 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true
04-Jan-2019 07:27:08.549 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsecurerandom.source=file:/dev/urandom
04-Jan-2019 07:27:08.550 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
04-Jan-2019 07:27:08.550 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
04-Jan-2019 07:27:08.551 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
04-Jan-2019 07:27:08.551 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
Notice the 2 lines:
04-Jan-2019 07:27:08.542 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx2048m
...
04-Jan-2019 07:27:08.548 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024m
Then I created a page with the content from https://snippets.xwiki.org/xwiki/bin/view/Extension/Available%20Memory and got:
Current size of heap in bytes: 650641408
Maximum size of heap in bytes. 954728448
Amount of free memory within the heap in bytes: 101382832
So I can confirm that the value used is 1024m
(i.e. the last one).
Thus this solution doesn’t work to override any value defined in setenv.sh
.
Please raise an issue on XWiki Docker images - XWiki.org JIRA and I’ll have a look.
Thanks
Ok I’ve done it: Loading...
And it’s now implemented. See comments in the jira issue.