【发布时间】:2021-02-27 22:47:09
【问题描述】:
我从未设置过 docker 映像的堆大小。
root@0f94b4ca1efb:/# java -XX:+PrintFlagsFinal -version | grep HeapSize
size_t ErgoHeapSizeLimit = 0 {product} {default}
size_t HeapSizePerGCThread = 43620760 {product} {default}
size_t InitialHeapSize = 33554432 {product} {ergonomic}
size_t LargePageHeapSizeThreshold = 134217728 {product} {default}
size_t MaxHeapSize = 513802240 {product} {ergonomic}
uintx NonNMethodCodeHeapSize = 5825164 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122916538 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122916538 {pd product} {ergonomic}
但我可以看到,在图像中,最大堆大小为 513M。所以它正在以某种方式计算。想增加怎么自己设置?
我试过这样做
docker run -d --name devServer -e "SPRING_PROFILES_ACTIVE=dev" -e "JAVA_OPTS=-Xmx1g" -p 8080:8080 efd2e03a-8b5f-402a-8222-c8953e9f16aa /bin/bash
但是没有效果
【问题讨论】:
-
您使用的是哪个版本的 JDK?如果您使用 JDK >=10,则内存限制会自动识别并强制执行。 docker.com/blog/…
标签: spring-boot docker jvm heap-memory