У нас есть проверка Nagios, которая проверяет состояние памяти кучи на некоторых экземплярах Tomcat. Команда, которую он использует для получения метрик от ВМ, выглядит следующим образом:
java -jar /usr/java/cmdline-jmxclient-0.10.3.jar - localhost:17757 java.lang:type=Memory HeapMemoryUsage
, который производит вывод, такой как:
committed: 132579328
init: 134217728
max: 401014784
used: 18831512
Предупреждение срабатывает, если значение против used
превышает 90% значения против max
. Мне это кажется ошибочным, в основном потому, что значение max
может уменьшаться, а также увеличиваться :)
Какую информацию мы должны использовать для правильного мониторинга использования пространства кучи?
Должен ли я сравнивать max
со значением Xmx
?
Я могу получить значение Xmx, используя следующую команду:
java -jar /usr/java/cmdline-jmxclient-0.10.3.jar - localhost:17757 java.lang:type=Runtime InputArguments
Есть ли лучший способ?