一些 JVM 监控通过 SNMP return JVM 1.8 中的零值检查

Some JVM monitoring checks via SNMP return zero values in JVM 1.8

我的监控工具使用 SNMP 获取 Java 虚拟机 1.6 和 1.7 的几个内部值。问题是 JVM 1.8 机器中的某些值 return 为零值。

这些是 NoHeapMemPoolMaxSize(OID:.3.163.1.1.2.23.0)和 PoolMaxSize (OID:.3.163.1.1.2.110.1.13.2)。 snmpwalk 输出:

SNMPv2-SMI::enterprises.42.2.900.3.163.1.1.2.23.0 = Counter64: 0
SNMPv2-SMI::enterprises.42.2.900.3.163.1.1.2.110.1.13.2 = Counter64: 0

是否更改了这两个值的 OID?我将 JVM-MANAGEMENT-MIB.mibJava 6 and Java 8 进行了比较,我发现没有区别。

这里有什么问题?

问题是 JVM 没有定义 最大 MetaSpace 大小。添加 -XX:MaxMetaspaceSize=256m 作为命令行参数后,snmpwalk 命令显示这些值不再为零:

SNMPv2-SMI::enterprises.42.2.900.3.163.1.1.2.23.0 = Counter64: 1593835520
SNMPv2-SMI::enterprises.42.2.900.3.163.1.1.2.110.1.13.2 = Counter64: 268435456

此致。