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?