Docker環境下Java應用的最大內存和堆內存的設置


Docker環境下Java應用的最大內存和堆內存的設置

1、  設置應用允許使用的最大內存

通過docker run(創建一個新的容器並運行)命令中設置-m來進行設置。案例如下所示。

docker run -d --name test-service -m 800m --env LOG_LEVEL=ERROR -e "spring.profiles.active=dev" -p 8090:8090 test-service


2、設置最大堆內存

在Dockerfile里面,設置”-Xmx”參數。-Xmx用於指定堆(Heap)的最大值。案例如下所示。

CMD ["java", "-Xmx600m", "-jar", "/usr/local/test/data/test-1.0-SNAPSHOT.jar"]


注意:

docker鏡像服務的內存不能全部給“-Xmx”,因為JVM消耗的內存不僅僅是Heap。

JVM = Heap + Method Area +Constant Pool + Thread Stack * num of thread 。

Xmx的值可設置為鏡像上限減去150m或200m。當然還需要考慮應用自身的特點,比如class數目,並發線程數等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM