容器内部设置JVM的Heap大小
Posted fengjian2016
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器内部设置JVM的Heap大小相关的知识,希望对你有一定的参考价值。
容器内部利用脚本来获取容器的CGroup资源限制,并通过设置JVM的Heap大小。
Docker1.7开始将容器cgroup信息挂载到容器中,所以应用可以从 /sys/fs/cgroup/memory/memory.limit_in_bytes 等文件获取内存、 CPU等设置,在容器的应用启动命令中根据Cgroup配置正确的资源设置 -Xmx, -XX:ParallelGCThreads等参数
Java应用在容器使用中一个常见Heap设置的问题。容器与虚拟机不同,其资源限制通过CGroup来实现。而容器内部进程如果不感知CGroup的限制,就进行内存、CPU分配可能导致资源冲突和问题。
我们可以非常简单地利用JVM的新特性和自定义脚本来正确设置资源限制。这个可以解决绝大多数资源限制的问题。
以上是关于容器内部设置JVM的Heap大小的主要内容,如果未能解决你的问题,请参考以下文章
我收到警告“未设置容器内存限制。为 1G 容器配置 JVM。”无论 RAM 大小或 docker 配置
2021-09-28 docker 配置JVM参数及常用命令使用