
cat /proc/meminfoMemTotal: 197869260KBMemFree: 3698100KBMemAvailable: 62230260KB
docker run -it --rm alpine cat /proc/meminfoMemTotal: 197869260KBMemFree: 3677800KBMemAvailable: 62210088KB
#free -gtotal used free shared buff/cache availableMem: 188 122 1 0 64 64
docker run -m 4GB --rm openjdk:8-jre-slim java -XshowSettings:vm -versiondocker run -m 4GB --rm openjdk:9-jre-slim java -XshowSettings:vm -versiondocker run -m 4GB --rm openjdk:10-jre-slim java -XshowSettings:vm -versiondocker run -m 4GB --rm openjdk:11-jre-slim java -XshowSettings:vm -versiondocker run -m 4GB --rm openjdk:12 java -XshowSettings:vm -version
[root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:8-jre-slim java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 26.67GErgonomics Machine Class: serverUsing VM: OpenJDK 64-Bit Server VMopenjdk version "1.8.0_181"OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:8-jre-slim java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 910.50MErgonomics Machine Class: serverUsing VM: OpenJDK 64-Bit Server VMopenjdk version "1.8.0_181"OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:9-jre-slim java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 29.97GUsing VM: OpenJDK 64-Bit Server VMopenjdk version "9.0.4"OpenJDK Runtime Environment (build 9.0.4+12-Debian-4)OpenJDK 64-Bit Server VM (build 9.0.4+12-Debian-4, mixed mode)
[root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:9-jre-slim java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 1.00GUsing VM: OpenJDK 64-Bit Server VMopenjdk version "9.0.4"OpenJDK Runtime Environment (build 9.0.4+12-Debian-4)OpenJDK 64-Bit Server VM (build 9.0.4+12-Debian-4, mixed mode)
[root@xiaoke-test ~]# docker run -m 32GB --rm openjdk:10-jre-slim java -XshowSettings:vm -XX:MaxRAMFraction=1 -versionVM settings:Max. Heap Size (Estimated): 1.00GUsing VM: OpenJDK 64-Bit Server VMopenjdk version "10.0.2" 2018-07-17OpenJDK Runtime Environment (build 10.0.2+13-Debian-2)OpenJDK 64-Bit Server VM (build 10.0.2+13-Debian-2, mixed mode)
[root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:11-jre-slim java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 1.00GUsing VM: OpenJDK 64-Bit Server VMopenjdk version "11.0.1" 2018-10-16OpenJDK Runtime Environment (build 11.0.1+13-Debian-3)OpenJDK 64-Bit Server VM (build 11.0.1+13-Debian-3, mixed mode, sharing)
[root@xiaoke-test ~]# docker run -m 4GB --rm openjdk:12 java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 1.00GUsing VM: OpenJDK 64-Bit Server VMopenjdk version "12-ea" 2019-03-19OpenJDK Runtime Environment (build 12-ea+23)OpenJDK 64-Bit Server VM (build 12-ea+23, mixed mode, sharing)
docker run -m 4GB --rm adoptopenjdk/openjdk8-openj9:alpine-slim java -XshowSettings:vm -versiondocker run -m 4GB --rm adoptopenjdk/openjdk9-openj9:alpine-slim java -XshowSettings:vm -versiondocker run -m 4GB --rm adoptopenjdk/openjdk10-openj9:alpine-slim java -XshowSettings:vm -versiondocker run -m 4GB --rm adoptopenjdk/openjdk11-openj9:alpine-slim java -XshowSettings:vm -version
[root@xiaoke-test ~]# docker run -m 4GB --rm adoptopenjdk/openjdk8-openj9:alpine-slim java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 3.00GErgonomics Machine Class: serverUsing VM: Eclipse OpenJ9 VMopenjdk version "1.8.0_192"OpenJDK Runtime Environment (build 1.8.0_192-b12_openj9)Eclipse OpenJ9 VM (build openj9-0.11.0, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20181107_95 (JIT enabled, AOT enabled)OpenJ9 - 090ff9dcdOMR - ea548a66JCL - b5a3affe73 based on jdk8u192-b12)
[root@xiaoke-test ~]# docker run -m 4GB --rm adoptopenjdk/openjdk9-openj9:alpine-slim java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 3.00GUsing VM: Eclipse OpenJ9 VMopenjdk version "9.0.4-adoptopenjdk"OpenJDK Runtime Environment (build 9.0.4-adoptopenjdk+12)Eclipse OpenJ9 VM (build openj9-0.9.0, JRE 9 Linux amd64-64-Bit Compressed References 20180814_248 (JIT enabled, AOT enabled)OpenJ9 - 24e53631OMR - fad6bf6eJCL - feec4d2ae based on jdk-9.0.4+12)
[root@xiaoke-test ~]# docker run -m 4GB --rm adoptopenjdk/openjdk10-openj9:alpine-slim java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 3.00GUsing VM: Eclipse OpenJ9 VMopenjdk version "10.0.2-adoptopenjdk" 2018-07-17OpenJDK Runtime Environment (build 10.0.2-adoptopenjdk+13)Eclipse OpenJ9 VM (build openj9-0.9.0, JRE 10 Linux amd64-64-Bit Compressed References 20180813_102 (JIT enabled, AOT enabled)OpenJ9 - 24e53631OMR - fad6bf6eJCL - 7db90eda56 based on jdk-10.0.2+13)
[root@xiaoke-test ~]# docker run -m 4GB --rm adoptopenjdk/openjdk11-openj9:alpine-slim java -XshowSettings:vm -versionVM settings:Max. Heap Size (Estimated): 3.00GUsing VM: Eclipse OpenJ9 VMopenjdk version "11.0.1" 2018-10-16OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.1+13)Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.11.0, JRE 11 Linux amd64-64-Bit Compressed References 20181020_70 (JIT enabled, AOT enabled)OpenJ9 - 090ff9dcOMR - ea548a66JCL - f62696f378 based on jdk-11.0.1+13)
JavaMemory (MaxRAM) = 元資料+執行緒+程式碼快取+OffHeap+Heap...
MaxRAMFraction取值 堆佔比 容器記憶體=1G 容器記憶體=2G 容器記憶體=4G 容器記憶體=8G 容器記憶體=16G1 ≈90% 910.50M 1.78G 3.56G 7.11G 14.22G2 ≈50% 455.50M 910.50M 1.78G 3.56G 7.11G3 ≈33% 304.00M 608.00M 1.19G 2.37G 4.74G4 ≈25% 228.00M 455.50M 910.50M 1.78G 3.56G
容器記憶體<size> 最大Java堆大小小於1GB 50%<size>1GB-2GB -512MB大於2GB 大於2GB
知識星球