gpt4 book ai didi

java - 从主机使用 Java 共享堆空间

转载 作者:行者123 更新时间:2023-12-02 01:23:08 25 4
gpt4 key购买 nike

从主机系统挂载jre目录可以通过共享堆空间来减少RAM内存使用吗?或者这会导致一些问题吗?

我有很多容器在里面运行java服务。问题是,有时当服务的工作负载非常大时,它们(最终)需要大量堆空间。当我为每个容器(例如)分配 -Xmx2g 时,我的主机系统上的 RAM 很快就会耗尽。不幸的是,一旦java分配了堆,它就不再是空闲的(对于容器RAM,主机RAM)。重新启动容器将释放峰值时使用的堆空间分配的内存,但对于内部有 solr 的容器来说,它(可能)需要几个小时才能再次索引所有数据,这使得停机时间只能在周末出现。

这个想法是在主机系统中使用通用的 jre 在单个服务之间共享堆空间。也许我可以为 -Xmx 指定以下值(仅作为示例):250m 次服务数量加上 3g 的工作负载峰值。这样我将使用更少的内存,因为服务共享堆空间。

我的想法有错误吗?或者它真的值得吗?

也许有人已经遇到过这样的问题,并且可能以另一种方式解决了它?

最佳答案

我认为在容器之间共享内存不是一个好主意。 Docker 旨在隔离不同的环境并减少其他容器的影响。所以用自己的jvm运行是目前使用Docker和其他容器的方式。

此外,如果共享内存,则很难迁移容器。

关于java - 从主机使用 Java 共享堆空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57604913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com