Docker环境下Java应用的最大内存和堆内存的设置
生活随笔
收集整理的這篇文章主要介紹了
Docker环境下Java应用的最大内存和堆内存的设置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Docker環(huán)境下Java應(yīng)用的最大內(nèi)存和堆內(nèi)存的設(shè)置
1、? 設(shè)置應(yīng)用允許使用的最大內(nèi)存
通過docker run(創(chuàng)建一個(gè)新的容器并運(yùn)行)命令中設(shè)置-m來進(jìn)行設(shè)置。案例如下所示。
docker run -d --name test-service -m 800m --env LOG_LEVEL=ERROR -e "spring.profiles.active=dev" -p 8090:8090 test-service
2、設(shè)置最大堆內(nèi)存
在Dockerfile里面,設(shè)置”-Xmx”參數(shù)。-Xmx用于指定堆(Heap)的最大值。案例如下所示。
CMD ["java", "-Xmx600m", "-jar", "/usr/local/test/data/test-1.0-SNAPSHOT.jar"]
注意:
docker鏡像服務(wù)的內(nèi)存不能全部給“-Xmx”,因?yàn)镴VM消耗的內(nèi)存不僅僅是Heap。
JVM = Heap + Method Area +Constant Pool + Thread Stack * num of thread?。
Xmx的值可設(shè)置為鏡像上限減去150m或200m。當(dāng)然還需要考慮應(yīng)用自身的特點(diǎn),比如class數(shù)目,并發(fā)線程數(shù)等。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lywJ/p/10880340.html
總結(jié)
以上是生活随笔為你收集整理的Docker环境下Java应用的最大内存和堆内存的设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IP通信基础 4月15日
- 下一篇: Java 的 IO 流