当前位置: 首页 > 知识库问答 >
问题:

Docker(LXC)容器中的JVM内存分配

颜安宁
2023-03-14

我们已经封装了一个JVM(Scala)应用程序Java1.7,并试图决定如何分配内存。我们在docker容器中运行了一个应用程序。如果为docker容器分配了4GB的RAM,那么我们是否应该为JVM分配4GB(或者为了安全起见稍微少一点)?

据我所知,除了从入口点调用的进程之外,docker容器中没有其他进程在运行,所以我们不需要担心非JVM内存的使用--这是真的吗,还是过于简化了?我们还有其他问题要问吗?

我们正在使用Mesos/Marathon来部署docker映像--我相信它确实设置了cgroup的内存限制(至少,它给人的印象是这样),但我肯定错了。

共有1个答案

万俟震博
2023-03-14

我有同样的场景,我使用了90%的保留内存到jvm,并且工作得很好

 类似资料:
  • 我已经看到了很多关于docker设置之类的东西,使用运行ES的unpriv容器。基本上,我不想建立一个简单的“prod集群”。总共有两个节点,一个物理节点(用于数据),一个用于Injest/Master(LXD容器)。 我遇到的问题是使用作为配置选项来锁定容器主/注入节点上的内存(避免交换)。 现在,考虑到ES用户不能调整主机上的u限制,这是有意义的。鉴于我知道这是危险的,有没有一种方法/如何确保

  • 我已经下载了EclipseMat,并尝试在Windows上启动它。 执行显示一个弹出窗口,显示与此消息不兼容的JVM:JVM的1.8.0242版本不适用于此产品。版本:11或更高版本是必需的。 如本文所述,我创建了一个目录,并复制了一个解决问题的OpenJDK 16。 但是我不觉得这个解决方案很优雅。所以我试图在中添加参数,并试图创建一个文件作为文档的引用。它不起作用! 有没有一种方法可以配置JV

  • 我有一个Java应用程序,基于Java8 OpenJDK。它运行在一个限制为20GB的docker容器中。 tomcat的-xms和-xmx设置如下: -xms=容器内存的60%(由cgroup指定)-so 12gb-xmx=容器内存的80%(由cgroup指定)-so 16gb 通常情况下是使用MaxRAM还是-xmx,还是两者都设置有什么好处? 如果我使用MaxRAM而不是-xmx,java将

  • 正如标题所说,我正在尝试为我的容器分配更多的内存。我正在使用docker中心的一个名为“aallam/tomcat-mysql”的图像,以防相关。 当我在没有任何特殊标志的情况下正常启动时,内存限制为2GB(即使我读到内存是无界的,如果没有设置) 这是我的码头工人数据 我试着像这样显式地设置内存,但结果相同 我已经读到,可能是虚拟机限制了它。但为什么docker统计数据显示容器大小限制为2GB?