Контейнеры Liberica Alpaquita теперь поставляются с CRaC

Компания Bellsoft добавила поддержку CRaC в свои готовые образы контейнеров Alpaquita. Это позволит разработчикам легко интегрировать CRaC в свои проекты для обеспечения производительности Java в облаке.

Является ли CRaC волшебным рецептом для решения проблем с разогревом Java?

JVM печально известна своими высокими требованиями к времени запуска и прогрева. Основная причина медленного запуска заключается в том, что требуется много времени на загрузку, связывание и инициализацию классов. Конечно, речь идет о микросекундах, но эта задержка может иметь значение при попытке развернуть виртуальные машины в облаке и запустить микросервисы. Есть идеи, как ускорить работу, и CRaC - одна из них.

CRaC расшифровывается как Coordinated Restore at Checkpoint. Это API, который помогает координировать ресурсы JDK и приложения в рамках механизма контрольной точки/восстановления.
Он позволяет приложениям, например, закрывать открытые файлы, сбрасывать кэш и создавать снимки состояния, необходимого для того, чтобы они ожили при восстановлении. Поэтому основная цель проекта - предложить стандартный API, не зависящий от механизма, для уведомления Java-программ о событиях контрольной точки и восстановления.

Bellsoft недавно включила CRaC в сборки Liberica OpeJDK для Java версий 17 и 21, поэтому разработчики могли использовать его для создания снимков Java-приложений во время выполнения, чтобы сократить время запуска до миллисекунд. Поэтому было вполне логично, что Bellsoft также выпустила свои контейнеры Alpaquita с поддержкой CRaC. И бенчмарки многообещающие: контейнеры с CRaC в 164 раза быстрее запускаются и в 1,1 раза уменьшают размер изображений при тестировании с приложением Petclinic.

Что касается времени запуска, то тесты позволили сократить время запуска (т. е. время до первой операции) с 4935 мс до 30 мс. Что касается размера, то сразу после восстановления размер сгенерированного изображения CRaC уменьшился с 613 МБ до 190 МБ. Когда приложение начало обрабатывать запросы, размер изображения вырос до 381 МБ после 10 000 запросов, но в дальнейшем размер изображения не менялся. Так что общее сокращение в 1,1 раза все еще ощутимо.

Дополнительным преимуществом является то, что поскольку JDK-сборка Liberica является временем выполнения по умолчанию для Spring, это означает, что проекты Spring Boot могут сразу же воспользоваться преимуществами значительного роста производительности. Другими проектами с поддержкой CRaC уже являются Micronaut и Quarkus, а также существует модификация Tomcat, позволяющая использовать CRaC для приложений Spring Boot.

Таким образом, контейнеры Alpaquita позволяют разработчикам использовать CRaC в своих проектах без необходимости дополнительной настройки Java или ОС. Контейнеры доступны для JDK 17 и 21 и архитектуры x86_64, а поддержка ARM появится позже, в 2024 году.

Контейнеры Liberica Alpaquita теперь поставляются с CRaC
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
24 апреля 2024 г.
49
Теги: Bellsoft

Комментарии

Оставить комментарий:
* отправляя форму, я даю согласие на обработку персональных данных

Читайте еще