На какую область памяти JVM следует воздействовать больше всего при использовании совместного использования данных класса OpenJ9 - PullRequest
0 голосов
/ 26 марта 2019

Я ищу эмпирические доказательства в поддержку использования функции совместного использования данных класса Open J9 *1002*.Эта функция заявляет:

обеспечивает прозрачный и динамический обмен данными между несколькими виртуальными машинами Java (JVM), работающими на одном хосте, что уменьшает объем физической памяти, потребляемой каждым экземпляром JVM

Я использую docker compose для запуска 5 копий одного и того же приложения и локального сервера prometheus для мониторинга использования памяти во всех 5 JVM.

Я запускал с функцией обмена данными классавключен и отключен, а затем я смотрю на метрики.

  • загруженные классы jvm
  • jhem nonheap memory
  • хранилище классов jvm
  • jvm JIT кеш данных
  • буферная память

, которые были открыты в приложении весенней загрузки через конечную точку привода Prometheus.

Моя интуиция сказала мне, что если какая-то памятьсопоставленный файл использовался для хранения классов. Я мог бы увидеть некоторое уменьшение объема хранилища классов и памяти без кучи.

Не то, чтобы мой тест былдовольно научный, но до сих пор я вижу обратное - когда я включаю эту функцию, обе эти метрики немного увеличиваются (предельные суммы, но вовсе не снижаются).

Где в действительности нужно искать, чтобы измеритьвлияние, которое имеет эта функция.На первый взгляд, мне кажется, что это должно оказать какое-то измеримое влияние, учитывая, что все 5 приложений идентичны, что заставляет меня чувствовать, что я измеряю неправильные вещи.

...