diff --git a/Dockerfile b/Dockerfile index af504886..ca524720 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21.0.3_9-jre +FROM ibm-semeru-runtimes:open-21-jre EXPOSE 8082 @@ -8,5 +8,5 @@ VOLUME /commafeed/data COPY commafeed-server/config.yml.example config.yml COPY commafeed-server/target/commafeed.jar . -ENV JAVA_TOOL_OPTIONS -Djava.net.preferIPv4Stack=true -Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 +ENV JAVA_TOOL_OPTIONS -Djava.net.preferIPv4Stack=true -Xtune:virtualized -Xminf0.05 -Xmaxf0.1 CMD ["java", "-jar", "commafeed.jar", "server", "config.yml"] diff --git a/README.md b/README.md index 6037d219..1433c867 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ user is `admin` and the default password is `admin`. The Java Virtual Machine (JVM) is rather greedy by default and will not release unused memory to the operating system. This is because acquiring memory from the operating system is a relatively expensive operation. -However, this can be problematic on systems with limited memory. +This can be problematic on systems with limited memory. #### Hard limit @@ -77,6 +77,15 @@ and [here](https://docs.oracle.com/en/java/javase/17/gctuning/factors-affecting- more information. +#### OpenJ9 + +The [OpenJ9](https://eclipse.dev/openj9/) JVM is a more memory-efficient alternative to the HotSpot JVM, at the cost of +slightly slower throughput. + +IBM provides precompiled binaries for OpenJ9 +named [Semeru](https://developer.ibm.com/languages/java/semeru-runtimes/downloads/). +This is the JVM used in the [Docker image](https://github.com/Athou/commafeed/blob/master/Dockerfile). + ## Translation Files for internationalization are