容器内部设置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 配置

容器环境 JVM 内存配置最佳实践

2021-09-28 docker 配置JVM参数及常用命令使用

Linux 下怎么设置JVM heap的大小

JVM XMX设置多大比较好,Docke容器里该怎么设置JVM呢@无界编程

SSM-mybatis-spring容器 复杂和简化方法