Мониторинг использования кучи с помощью jstack

Я знаю, что этот вопрос задавали много, но я не смог найти надежного способа интерпретации вывода jstat для мониторинга. Я пытаюсь написать монитор кучи Kava в Bash для развертывания в Linux. Я не могу включить какой-либо сторонний код, поэтому jvmtop не вариант. Я также не являюсь экспертом в программировании на Java, поэтому, хотя я знаю, что нечто подобное можно сделать в нескольких строках Java-кода с использованием JMX, я не знаю, как это сделать. Я пытаюсь использовать вывод jstat, чтобы получить общий размер кучи и использование кучи, чтобы я мог предупредить, если приложение столкнется с проблемами OOM. Пока это то, что у меня есть:

  1. Бежать /usr/java/bin/jstat -gc и сложить S0U, S1U, EU а также OU чтобы получить использование кучи.
  2. Бежать /usr/java/bin/jstat -gccapacity и сложить NGCMX а также OGCMX чтобы получить кучу емкости.

    Однако, несмотря на то, что приложение работает с OOM, загрузка показывает 70-80%, поэтому это не должно быть точным. Я пытался включить статистику GC, чтобы понять использование кучи, но я не знаю, что в ней содержится.

2018-07-31T08:16:49.087-0400: 8063.483: [Full GC [PSYoungGen: 0K->0K(1286016K)] [ParOldGen: 1382807K->1335278K(1683840K)] 1382807K->1335278K(2969856K) [PSPermGen: 55666K->55460K(61568K)], 29.7283550 secs] [Times: user=117.08 sys=0.00, re al=29.73 secs] java.lang.OutOfMemoryError: Java heap space

У нас есть 4 Гб, назначенные для кучи

Есть ли надежный способ рассчитать использование кучи с помощью jstat или любого другого инструмента, уже развернутого с JRE?

0 ответов

Другие вопросы по тегам