gpt4 book ai didi

java - 如何调整 jvm 使其崩溃而不是英勇地 GC 直到 100% CPU 利用率?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:55:03 25 4
gpt4 key购买 nike

我们有一个 JVM 进程,它很少将 CPU 占用 100%,看起来(根据 visualgc)堆几乎耗尽。我们的假设是该进程正在英勇地进行 GC,导致 CPU 峰值,这会影响整个系统的整体健康状况(由其他 JVM 执行不同的事情组成)。

这个过程并不关键,可以重新开始。有没有一种方法可以通过启动它的命令行来调整 JVM,使其落在自己的剑上,而不是继续进行 GC 并导致整个盒子受到影响?

值得注意的是,我们没有收到 OOMException,因此堆并没有完全耗尽,但我们认为只是勉强没有耗尽。

或者,一些东西可以让我们了解 JVM 中的什么实际上以确认/否定我们的 GC 假设的方式使用 CPU?

最佳答案

我们可以从中获取统计数据

1): 选项 -XX:+PrintGCTimeStamps 将在每个收集的开始添加一个时间戳。这对于查看垃圾回收发生的频率很有用。

使用上述选项,我们可以粗略估计您是否假设该进程正在英勇地进行 GC,从而导致 CPU 峰值。

如果您的假设是正确的,那么开始调整您的 GC。

 Both parallel collector and Concurrent Collector will throw an OutOfMemoryError if too much time is being
spent in garbage collection: if more than 98% of the total time is spent in garbage collection and
less than 2% of the heap is recovered, an OutOfMemoryError will be thrown. the option X:-UseGCOverheadLimit
is enabled by default for both Parallel and concurrent collector . Check whether this option is disabled in
your system .

有关 JVM 中 Gc 调优的更多信息,请参阅 this对于 vm 调试选项,检查 this

关于java - 如何调整 jvm 使其崩溃而不是英勇地 GC 直到 100% CPU 利用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385753/

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