Java Azure 명령 시작 관리자(공개 미리 보기)

Java Azure 명령 시작 관리자(jaz)는 Java 개발자가 Azure 애플리케이션을 실행하는 방법을 간소화하는 간단한 유틸리티입니다. 이 도구는 클라우드 환경에 맞게 조정된 Java JVM(Virtual Machine) 옵션을 지능적으로 적용하여 구성 오버헤드를 줄이고 리소스 사용률을 개선하여 성능 향상 가능성을 높입니다.

이 도구는 다음과 같은 개발자에게 적합합니다.

  • 튜닝 가이드를 자세히 살펴보지 않고 더 나은 JVM 기본값을 원합니다.
  • Spring Boot, Quarkus 또는 Micronaut과 같은 프레임워크를 사용하여 클라우드 네이티브 마이크로 서비스를 개발하고 배포합니다.
  • Kubernetes 및 OpenShift와 같은 컨테이너 기반 워크플로를 선호합니다.
  • Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift 또는 Azure Virtual Machines Java 워크로드를 배포합니다.

주요 기능

  • 🛠 클라우드 네이티브 배포에 대한 JVM 플래그를 자동으로 조정합니다.
  • 🚀 플러그 앤 플레이 경험. Dockerfile이나 시작 스크립트에 java 명령을 jaz로 바꾸어 추가하기만 하면 됩니다.
  • ☁️ Azure 환경에 최적화되어 있습니다.
  • 🔧 환경 변수를 통해 사용자 지정할 수 있습니다. 구성 변경 내용을 안전하게 롤아웃하는 방법에는 여러 가지가 있습니다.

지원되는 환경

Java Azure 명령 시작 관리자는 Linux 기반 환경에서 Java 시작 관리자를 사용할 수 있는 모든 위치에서 사용할 수 있습니다. 다음 Azure 및 CI/CD 플랫폼에서 유효성을 검사하고 테스트했습니다.

  • AKS(Azure Kubernetes Service)
  • Azure Container Apps
  • Azure App Service
  • Azure Functions
  • ARO(Azure Red Hat OpenShift)
  • Azure Virtual Machines
  • Azure DevOps
  • GitHub Codespaces
  • GitHub Actions

중요합니다

Java Azure 명령 시작 관리자가 cgroup v1 및 v2 정보를 읽고 사용 가능한 리소스를 확인하고 그에 따라 JVM을 조정합니다. 파일을 /sys/fs/cgroup 내에서 탐색하여 메모리 제한 및 기타 리소스 제약 조건을 발견합니다.

cgroup 파일 시스템이 /sys/fs/cgroup 탑재되지 않은 경우 Java Azure 명령 시작 관리자가 컨테이너화 제한을 올바르게 검색하지 못하여 성능이 저하되거나 메모리 부족 오류가 발생할 수 있습니다. 지원되는 환경에서 이 문제가 발생하는 시나리오를 확인하지는 않았지만 사용자 지정된 환경에서 이러한 제한 사항이 발생할 수 있습니다.

자세한 내용은 "내 cgroup 탑재 지점이 중요한 이유는 무엇인가요?"를 참조하세요.

공개 미리 보기

이제 Java Azure 명령 시작 관리자를 공개 미리 보기로 사용할 수 있습니다. 이 도구 및 해당 혜택에 대한 소개는 공개 미리 보기 공 지 사항을 읽어보십시오.

작동 방식

Java Azure 명령 시작 관리자가 컨테이너 또는 가상 머신 시작 명령과 JVM 사이에 있습니다. 도구를 시작할 때 다음을 수행합니다.

  1. 클라우드 환경(예: 컨테이너 제한 및 사용 가능한 메모리)을 검색합니다.
  2. 워크로드 유형을 분석하고 다음과 같이 가장 적합한 JVM 튜닝 플래그를 선택합니다.
    • 힙 크기 조정.
    • 가비지 수집기 선택 및 튜닝.
    • 필요에 따라 로깅 및 진단 설정입니다.
  3. Java 프로세스를 시작하여 튜닝 플래그 및 사용자가 제공한 인수를 전달합니다.
  4. Java 프로세스에서 stdout, stderr, stdin 및 OS 신호를 보이지 않게 릴레이합니다.
  5. Java 프로세스를 모니터링하고 종료 시 종료 코드를 릴레이합니다.

사용 예시

Java Azure 명령 시작 관리자가 java 명령을 대체하므로 코드를 변경하지 않아도됩니다. 시작 스크립트에서 javajaz로 간단히 대체하세요. 예를 들어, java -jar foo.jarjaz -jar foo.jar로 대체하세요.

JVM 옵션을 수동으로 튜닝하는 대신 다음을 수행합니다.

JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar

jaz는 다음 용도로 사용합니다.

jaz -jar myapp.jar

기본적으로 jaz 사용자가 제공한 튜닝 플래그를 검색하지 않을 때 튜닝을 적용합니다. Java 명령줄 인수 또는 Java 옵션 환경 변수에 이미 사용자 제공 튜닝 플래그(예: -X* 또는-XX*) jaz 가 포함되어 있으면 해당 설정을 유지하고 자체 설정을 추가하지 않습니다. 사용자 제공 튜닝 플래그를 제거하지 않고 jaz가 자체 튜닝을 적용하도록 강제하려면 JAZ_IGNORE_USER_TUNING=1를 설정하세요.

애플리케이션은 다음을 통해 자동으로 혜택을 받을 수 있습니다.

  • 클라우드 네이티브 및 컨테이너 워크로드에 대한 전투 테스트 기본값입니다.
  • 클라우드에서 메모리 낭비가 감소했습니다.
  • 더 나은 시작 및 준비 성능.

설치

Linux에서 Java Azure 명령 시작 관리자를 설치하는 방법 또는 컨테이너 이미지를 설치하는 방법에 대한 지침은 설치 페이지를 참조하세요.

로드맵

  • ⚙️ JVM 구성 프로필
  • 📦 AppCDS 지원
  • 🔄 연속 조정
  • 📊 원격 측정
  • 📦 레이든 지원

Changelog

Java 릴리스 정보에 대한 Azure 명령 시작 관리자와 Java 릴리스 페이지의 Azure 명령 시작 관리자에서 변경 로그를 찾을 수 있습니다.

테레메트리

Azure 명령 실행 도구 for Java는 사용량 데이터를 수집하여 Microsoft에 보냅니다. 이는 제품 및 서비스를 개선하는 데 도움이 됩니다. 자세한 내용은 개인정보처리방침을 읽어보세요.