如何调整jvm崩溃而不是英雄GC直到100%的CPU利用率?

Mic*_*ell 10 java garbage-collection jvm

我们有一个JVM进程很少将CPU固定在100%,看起来似乎是(根据visualgc)一个非常耗尽的堆.我们的假设是,该过程是英勇的GC导致CPU峰值,这会影响整个系统的整体运行状况(包括其他JVM做不同的事情).

此过程并不重要,可以重新启动.有没有办法通过命令行调整JVM,启动它使它落在自己的剑上而不是它保持GC并导致整个盒子受损?

值得注意的是,我们没有得到OOMExceptions,所以堆不是完全耗尽,但我们认为只是勉强没有.

或者,有什么东西可以让我们了解一下JVM中实际使用CPU的方式是确认/拒绝我们的GC假设?

And*_*niy 1

您需要找到一种方法来收集有关 GC 工作的一些统计数据。实际上有一些方法可以做到这一点。我不会复制粘贴,只是给你类似问题的链接:

你能用 Java 获得基本的 GC 统计数据吗?

我相信,你会想到如何分析这个统计数据并决定GC何时持续活跃。

因为这个问题包含一些应用 GC 统计的新想法,所以我不认为它是重复的。