通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。
以下是JVM中Docker默认设置之间的一些常见陷阱。
首先,有很多关于JVM和容器意识的文章:
在本文中,我使用Java 11,这意味着垃圾收集器的默认值应该是G1GC! 让我们看一下默认值,JVM会根据内存大小和提供的CPU自动选择这些默认值。
基于Docker CPU的默认GC
$ docker run --cpus="2" openjdk:11-jre java -XX:+PrintFlagsFinal -version | grep -E "(MAX|UseSerialGC|UseG1GC|MaxHeapSize)"
size_t MaxHeapSize = 5200936960 {
product} {
ergonomic}
bool UseG1GC = true {
product} {
ergonomic}
bool UseSerialGC = false {
product} {
default}
$ docker run --cpus="1" openjdk:11-jre java -XX:+PrintFlagsFinal -version | grep -E "(MAX|UseSerialGC|UseG1GC|MaxHeapSize)"
size_t MaxHeapSize = 5200936960 {
product} {
ergono