Статьи

Использование OpenJ9 JVM для приложений Quarkus

Как определено на домашней странице, Quarkus является «стеком Java для Kubernetes, созданным специально для OpenJDK HotSpot и GraalVM». Поскольку я большой поклонник OpenJ9 , я быстро измерил использование памяти моим реактивным примером приложения, где я запускаю микросервис один раз с OpenJ9 и один раз с HotSpot.

OpenJ9 — это Java JVM, которая была открыта из IBM 2-3 года назад. Это в основном та же JVM, которую IBM использует в сотнях продуктов и предложений. Приятно то, что по сравнению с Hotspot он обеспечивает не только ускорение запуска на 42%, но и сокращение объема памяти на 66%. Ознакомьтесь с документацией .

Я использовал OpenJ9 из AdoptOpenJDK, где вы можете выбирать между HotSpot и OpenJ9. Прочитайте мой предыдущий блог, чтобы понять, какие еще преимущества предоставляет AdoptOpenJDK.


Вы также можете прочитать:
Мысли о Quarkus

Результаты использования памяти

Вот результаты моего маленького теста. Диаграмма с сайта Quarkus. Все, что в оранжевом, — это то, что я добавил для OpenJ9.

Я запустил тот же сервис, который обращается к базе данных с OpenJ9 и HotSpot. Я развернул две версии сервиса с нуля и согрел их, вызвав их REST API. После этого я применил «статистику докеров | grep статей-реактив ». Горячая точка показала 149,8 МБ и OpenJ9 59,77 МБ.

Как запустить тесты

Я использовал мой пример приложения, которое является частью проекта cloud-native-starter . Микросервис предоставляет REST API, которые выполняют операции CRUD над базой данных PostgreSQL.

Чтобы запустить микросервис с OpenJ9 в Minikube, вызовите следующие команды.


Оболочка