We run dozens of Metabase Docker containers on a single server (with Docker Compose) and would like to optimise the memory footprint.
I modified the Dockerfile to make use of OpenJ9 instead of HotSpot and have enabled class sharing by providing the following options:
JAVA_OPTS=-Xquickstart -Xshareclasses:cacheDir=/cache,verbose,checkURLTimestamps,persistent -Xscmx300M
But I am only able to have Java share its own libraries code:
root@f7dc95f540cf:/# java -Xshareclasses:cacheDir=/cache,printStats=classpath
1: 0x00007F5ACE807F1C CLASSPATH
/opt/java/openjdk/lib/modules
Current statistics for cache "sharedcc_root":
Cache created with:
-Xnolinenumbers = false
BCI Enabled = true
Restrict Classpaths = false
Feature = cr
Is there a way to have OpenJ9 also share all Metabase classes?