Некоторые проверки мониторинга JVM через SNMP возвращают нулевые значения в JVM 1.8.

Мои инструменты мониторинга используют SNMP для получения нескольких внутренних значений виртуальных машин Java 1.6 и 1.7. Проблема в том, что некоторые значения на машинах JVM 1.8 возвращают нулевое значение.

Это 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.mib с Java 6 и Java 8 и я не нашел разницы.

Что здесь не так?


person Jdamian    schedule 01.03.2018    source источник
comment
Согласно MIB, 42.2.900 должно быть 42.2.145, а имена jvmMemoryNonHeapMaxSize и jvmMemPoolMaxSize.2. Последний имеет индекс, который не гарантирует неизменности после перезапуска агента, поэтому нужное значение может находиться в другой строке.   -  person Sean Van Gorder    schedule 02.03.2018


Ответы (1)


Проблема заключалась в том, что 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

С наилучшими пожеланиями.

person Jdamian    schedule 05.03.2018