Dim*_*ios 6 java flags containers docker kubernetes
我正在Kubernetes中运行一个容器化的java应用程序.
为了根据容器规范制作jvm保留存储器,-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap必须设置标志.
如果这两个标志都与Xms和Xmx标志一起设置,那么jvm的行为是什么?一面旗帜会覆盖另一面吗?
例如,如果我们java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms -Xms2500M -Xmx2500M -jar myjar.jar
在容器中有容量限制4Gi用于请求而4Gi用于响应,则在具有128Gi内存的主机中,JVM会保留多少内存?
-Xmx 标志覆盖 -XX:+UseCGroupMemoryLimitForHeap 标志。
标志 -XX:+UseCGroupMemoryLimitForHeap 让 JVM 检测容器中的最大堆大小应该是多少。
-Xmx 标志将最大堆大小设置为固定大小。
为了回答您的示例,JVM 将保留 2500M 堆空间。非堆和 jvm 的东西会有一些额外的内存使用。
要进一步调整容器中的内存使用情况,您可以使用 -XX:MaxRAMFraction 标志。见这篇文章:https : //blog.csanchez.org/2017/05/31/running-a-jvm-in-a-container-without-getting-killed/
| 归档时间: |
|
| 查看次数: |
5841 次 |
| 最近记录: |