首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java进程snmp监视报告Eden和Survivor空间的最大值为零

Java进程snmp监视报告Eden和Survivor空间的最大值为零
EN

Stack Overflow用户
提问于 2022-03-10 10:34:34
回答 1查看 75关注 0票数 1

我正在通过Linux中的SNMP (配置WildFly属性)监视一个com.sun.management.snmp 10.1.0。

问题是报告的最大值为、Eden、幸存者空间为零。

代码语言:javascript
复制
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.11.4 = Counter64: 775946240
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.10.4 = Counter64: 3946840064
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.12.4 = Counter64: 3774873600
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.13.4 = Counter64: 0
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.11.5 = Counter64: 4194304
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.10.5 = Counter64: 0
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.12.5 = Counter64: 4194304
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.13.5 = Counter64: 0
代码语言:javascript
复制
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.2.2 = STRING: "Metaspace"
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.2.3 = STRING: "Compressed Class Space"
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.2.4 = STRING: "G1 Eden Space"
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.2.5 = STRING: "G1 Survivor Space"
.1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.2.6 = STRING: "G1 Old Gen"

在许多不报告此问题的其他Java进程中,都使用了相同的监视脚本。

是什么导致了这一切?这些值可以是零吗?

诚挚的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-11 04:19:00

这里的问题是,jvmMemPoolMaxSize (OID .1.3.6.1.4.1.42.2.145.3.163.1.1.2.110.1.13)在JVM-管理-MIB中被定义为JvmUnsigned64TC类型,这似乎有点奇怪,因为JVM-管理-MIB专门禁止使用无符号整数类型。

jvmMemPoolMaxSize的描述意味着它表示java.lang.management.MemoryPoolMXBean.getUsage().getMax()返回的值。该方法的文档表示“如果最大内存大小未定义,此方法将返回-1”。

jvmMgmMIB的描述用这个解释解决了这个问题:

在Java编程语言API使用long或int的情况下,MIB通常使用相应的无符号数量--这更接近对象语义。 在这些情况下,API可能用来指示未知/未实现值的-1值通常不能使用。相反,MIB使用0,严格地说,不能将其与有效值区分开来。然而,在许多情况下,正在运行的系统将具有非零值,因此使用0而不是-1来指示未知的数量不会丢失任何功能。

我认为可以肯定地说,这是零无效的情况之一,所以你应该把它理解为没有定义的最大值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71422671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档