gpt4 book ai didi

spring-boot - Spring Actuator的 "jvm.memory.max"指标与Runtime.getRuntime()。maxMemory()不匹配

转载 作者:行者123 更新时间:2023-12-04 03:27:20 25 4
gpt4 key购买 nike

我正在尝试Spring Boot Actuator,并查看“/actuator/metrics/jvm.memory.max”端点。

我还使用以下JVM选项运行Springboot应用程序:

-Xmx104m

我创建了一个端点(“/memory”,它返回应用程序的总内存,可用内存,已用内存和最大内存。为此,我使用了Runtime.getRuntime()。getXXX()方法。

我的问题是Springboot的“jvm.memory.max”以字节为单位显示的值与-Xmx值以及“/memory”端点显示的内容不匹配。

有什么想法为什么不匹配?

enter image description here

enter image description here

最佳答案

Spring Boot使用Micrometer来提供指标支持。 jvm.memory.max度量标准是Mirometer的JvmMemoryMetrics class使用MemoryPoolMXBean.getUsage().getMax()生成的。
MemoyPoolMXBean公开有关堆和非堆内存的信息,而Micrometer使用jvm.memory.max指标上的标签将它们分开。在问题显示的输出中,该值是堆内存和非堆内存的总和,这就是为什么它与使用-Xmx配置的特定于堆的值不同的原因。

您可以使用其标签和查询参数来深入了解指标。这在执行器的documentation中进行了描述。例如,要获取最大堆内存,可以使用http://localhost:9001/actuator/metrics/jvm.memory.max?tag=area:heap

关于spring-boot - Spring Actuator的 "jvm.memory.max"指标与Runtime.getRuntime()。maxMemory()不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54591870/

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