Как Anypoint отслеживает JVM Heap и Runtime manager vCore?

Я мог заметить, что в Rruntime Manager на API отводится 0.2vCore, использование памяти составляет 63%.

Когда я проверяю, что использование кучи в Anypoint Monitoring колеблется между 200 МБ и 810 МБ, а максимальный размер кучи составляет 870 МБ, это вызывает некоторые сомнения.

Размер кучи диспетчера среды выполнения vCore и монитора Anypoint одинаковый? Я выделил 1 ГБ виртуального ядра, но на графиках кучи максимальный размер кучи отображается между 850–870 МБ в зависимости от времени. мой вопрос: почему он не показывает максимальный доступный размер кучи 1 ГБ?

График кучи не падает ниже 200 МБ, достигнет ли он 0 МБ в любой момент? или любой код компиляции занимает эти 200 МБ?

Я немного запутался здесь, может кто-нибудь объяснить здесь, пожалуйста..

Спасибо..,


person Thiru    schedule 28.11.2019    source источник


Ответы (2)


Размер кучи диспетчера среды выполнения vCore и монитора Anypoint одинаковый? если да, то почему доступно только 870 МБ кучи вместо выделенного 1 ГБ (0,2 vCore)?

Максимальный размер кучи 0,2 vCore составляет 1 ГБ. . Возможно, JVM не нужно было увеличивать фактически используемый максимальный размер до максимально доступного.

График кучи не падает ниже 200 МБ, достигнет ли он 0 МБ в любой момент? или любой код компиляции занимает эти 200 МБ?

Любое приложение Java будет иметь некоторые объекты, созданные, если не приложением самой среды выполнения JVM, для выполнения. Это означает, что у него будет базовое минимальное использование кучи. Я не думаю, что любая работающая JVM может иметь 0 МБ использования кучи.

person aled    schedule 28.11.2019
comment
Спасибо, Алед, второй ответ довольно ясен и подходит к первому вопросу. Я выделил 1 ГБ виртуального ядра, но на графиках кучи максимальный размер кучи отображается между 850–870 МБ в зависимости от времени. мой вопрос: почему он не показывает максимальный доступный размер кучи 1 ГБ? - person Thiru; 29.11.2019
comment
Какую информацию точно показывает график? Размер кучи, используемая куча, выделенная память? - person aled; 29.11.2019
comment
Это использование кучи, ограничение на использование кучи сегодня показывает 855 МБ. Я сомневаюсь, что я выделил 1 ГБ (0,2 виртуального ядра), но почему предел использования кучи не показывает 1 ГБ? - person Thiru; 02.12.2019
comment
Я не могу проверить прямо сейчас, но я думаю, что предел использования кучи - это текущий размер кучи, использование кучи - это количество используемой кучи. Размер кучи может увеличиваться (или уменьшаться), но не может превышать максимальный размер кучи (в данном случае 1 ГБ). - person aled; 02.12.2019

Ваше приложение загружается в JVM, создаются объекты, которые занимают некоторое количество памяти. 200 — ваша базовая линия в этом случае. Затем, когда создается больше событий, размер кучи увеличивается, а по мере истечения срока действия событий в игру вступает сборка мусора и освобождается память.

Более подробную информацию можно найти по следующей ссылке.

https://help.mulesoft.com/s/article/Java-JVM-memory-allocation-pattern-explained

person Siva    schedule 28.11.2019
comment
Спасибо за ваш ответ, но он полностью описывает GC и кучу, но мне нужно разъяснение по упомянутым двум вопросам. не могли бы вы помочь ответить на эти два? - person Thiru; 28.11.2019