Mule Anypoint监视JVM堆和运行时管理器vCore有何关联?

Mule Anypoint监视JVM堆和运行时管理器vCore有何关联?,mule,heap,cloudhub,Mule,Heap,Cloudhub,我可以注意到,在RRontime Manager中,0.2vCore分配给API,内存利用率为63% 当我检查Anypoint监控中的堆利用率是否在200MB和810MB之间波动,以及提到的最大堆大小870MB时,这引起了一些疑问 运行时管理器vCore和任意点监视器堆大小是否相同?我分配了1GB的vCore,但在堆图中,最大堆大小显示在850-870MB之间,具体取决于时间。我的问题是为什么它没有显示最大可用堆大小为1GB 堆图没有下降到200MB以下,它会在任何时候达到0MB吗?或者任何类型

我可以注意到,在RRontime Manager中,0.2vCore分配给API,内存利用率为63%

当我检查Anypoint监控中的堆利用率是否在200MB和810MB之间波动,以及提到的最大堆大小870MB时,这引起了一些疑问

运行时管理器vCore和任意点监视器堆大小是否相同?我分配了1GB的vCore,但在堆图中,最大堆大小显示在850-870MB之间,具体取决于时间。我的问题是为什么它没有显示最大可用堆大小为1GB

堆图没有下降到200MB以下,它会在任何时候达到0MB吗?或者任何类型的编译代码都会占用这个200MB的空间

我在这里有点困惑,有人能在这里澄清一下吗


谢谢。

您的应用程序被加载到JVM中,对象被创建,它将占用一些内存。在这种情况下,200是您的基线。然后,随着创建更多的事件,堆大小增加,随着事件过期,垃圾收集开始发挥作用并释放内存

更多详细信息可在以下链接中找到

运行时管理器vCore和任意点监视器堆大小是否相同?如果是,为什么只有870MB堆可用,而没有分配1 GB(0.2V内存)

A的最大堆大小为1 GB。可能JVM不需要将实际使用的最大大小增加到最大可用大小

堆图没有下降到200MB以下,它会在任何时候达到0MB吗?或者任何类型的编译代码都会占用这个200MB的空间


任何Java应用程序都会创建一些对象(如果不是由JVM运行时本身创建的话)来执行。这意味着它将有一个基准最低堆使用率。我认为任何正在运行的JVM都不可能使用0 MB的堆。

感谢您的回答,但它完全描述了GC和堆,但我需要澄清上面提到的两个问题。请你帮我回答这两个问题好吗?谢谢,艾利德,第二个答案很清楚,然后是第一个问题。我分配了1GB的vCore,但在堆图中,最大堆大小显示在850-870MB之间,具体取决于时间。我的问题是,为什么它没有显示最大可用堆大小为1GB?图形确切显示了哪些信息?堆大小,使用的堆,提交的内存?它是堆使用的,堆使用的限制,今天显示为855MB。我的疑问是我分配了1 GB(0.2 vCore),但为什么heap used limit没有显示1 GB?我现在无法检查,但我认为heap used limit是堆的当前大小,heap use是堆的使用量。堆大小可以增加(或减少),但不能超过堆的最大值(本例中为1 GB)。