gpt4 book ai didi

java - 在 Java 中调整垃圾收集参数

转载 作者:搜寻专家 更新时间:2023-10-31 20:30:30 25 4
gpt4 key购买 nike

我有一个服务器 java 组件,它在启动时有巨大的内存需求,但会逐渐降低。因此,作为启动时的示例,内存需求可能会飙升至 4g;在初始激增结束后将下降到 2g。我已将组件配置为以 5g 内存启动,并且组件启动良好;使用的内存激增至 4g,然后下降到接近 2g。此时堆消耗的内存仍然徘徊在 4g 左右,我想降低它(基本上将可用内存保持在几百 mb 而不是 2g。我尝试通过将 MinFreeHeapRatio 和 MaxFreeHeapRatio 从默认值降低来使用它们但这导致在初始峰值期间初始运行后未触发垃圾收集,并且使用的内存保持在高于平时的水平。任何指针都会有很大帮助。

最佳答案

首先,我问您为什么担心释放服务器上的 2 GB 内存? 2GB 的 ram 大约是 100 美元或更少。如果这是在桌面上,我想我可以理解这种担忧。

如果您确实有充分的理由考虑它,这可能与您使用的垃圾收集算法有关。有些算法会将未使用的内存释放回操作系统,有些则不会。在 http://www.stefankrause.net/wp/?p=14 有一些图表等与此相关.您可能想尝试 G1 收集器,因为它似乎可以轻松地将内存释放回操作系统。

根据评论编辑如果他们都选择一次最大负载怎么办?您是否同意其中一些将内存分页到磁盘并减慢服务器速度?我会在具有足够内存的服务器上运行它们,以最大堆运行所有应用程序,另外还有 4-6GB 用于操作系统/缓存。 32 或 64 GB 的服务器很常见,您可以获得更多。

关于java - 在 Java 中调整垃圾收集参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180149/

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