我有一个Java应用程序,基于Java8 OpenJDK。它运行在一个限制为20GB的docker容器中。
tomcat的-xms和-xmx设置如下:
-xms=容器内存的60%(由cgroup指定)-so 12gb-xmx=容器内存的80%(由cgroup指定)-so 16gb
通常情况下是使用MaxRAM还是-xmx,还是两者都设置有什么好处?
如果我使用MaxRAM而不是-xmx,java将如何为堆分配内存?有没有一个简单的算法对此,例如,50%的MaxRAM设置?java这样做会更有效地管理内存吗?
一般来说,对于内存限制为20GB的容器,设置-xmx设置是否太高
看情况.应用程序可以使用比指定的-xmx
更少的RAM,也可以使用比指定的-xmx
多2倍或3倍的RAM。这两种应用程序我都见过很多。
查看Java进程中哪些占用内存。
我们已经封装了一个JVM(Scala)应用程序Java1.7,并试图决定如何分配内存。我们在docker容器中运行了一个应用程序。如果为docker容器分配了4GB的RAM,那么我们是否应该为JVM分配4GB(或者为了安全起见稍微少一点)? 据我所知,除了从入口点调用的进程之外,docker容器中没有其他进程在运行,所以我们不需要担心非JVM内存的使用--这是真的吗,还是过于简化了?我们还有其他问
问题内容: 带有 Windows的Docker桌面的Docker Windows容器是否具有默认内存限制?我有一个在容器中运行时崩溃的应用程序,但是当我尝试为命令指定参数时,它似乎运行良好。至少在以前崩溃的情况下。这给我的印象是有默认的内存限制,但是我在文档中找不到它。所以我的问题是是否存在内存限制,并且是否在记录的地方? 问题答案: 根据关于Windows的Docker Github问题的讨论(
问题内容: 我有一个Wordpress / MySQL docker容器,用于开发主题和插件。我在localhost:8000上访问它。 它使用了Gulp构建过程,我正在尝试将browsersync添加到组合中。我很难让browsersync真正代理出容器。从Gulp输出中,我可以看到它正在生成更改,只是实际上并未在浏览器中进行任何更改。 这是我的docker-compose.yml,gulpfi
问题内容: 我有1个进程写入docker容器中共享内存的特定部分(即“ / falcon”)。 Docker映像:dockersharedmemory / shmclient 我有另一个进程,它最初在另一个Docker容器中每秒创建和读取共享内存的同一部分(即“ / falcon”)。 Docker映像:dockersharedmemory / shmserver 使用以下命令运行两个容器时,我可
在提出这个问题时,Docker看起来很新,以至于在网上没有这个问题的答案。我唯一找到的地方是这篇文章,作者在文章中说这很难,就是这样。