메시지 프로세서의 가비지 수집기 구성

Java 21에서 실행되는 프라이빗 클라우드용 Edge 4.54.00에서 메시지 프로세서는 기본적으로 Garbage-First Garbage Collector(G1GC)를 사용합니다. 이 문서에서는 메시지 프로세서에서 가비지 컬렉션 설정을 구성하고 확인하는 방법을 설명합니다.

메시지 프로세서에서 가비지 컬렉터 맞춤설정

이 섹션에서는 Edge 메시지 프로세서에서 대체 가비지 컬렉션 (GC) 설정을 구성하는 절차를 간략하게 설명합니다. 메시지 프로세서에서 GC 속성을 업데이트하여 GC 매개변수를 관리합니다. 구성 속성을 조정하려면 Edge 구성 방법에 정의된 토큰 구문을 사용하세요.

메시지 프로세서에서 GC 설정을 수정하려면 다음 단계를 수행하세요.

  1. GC 속성 확인
  2. 메시지 프로세서에서 GC 수정

GC 속성 확인

다음 단계에서는 구성된 GC 속성을 확인하는 방법을 설명합니다.

  1. 다음 명령어를 사용하여 메시지 프로세서 소스 디렉터리에서 GC 속성을 검색합니다./opt/apigee/edge-message-processor/source
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. 이 명령어의 출력에 메시지 프로세서의 GC 속성 구성이 표시되는지 확인합니다.
    /opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useZGC={T}conf_system_useZGC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}

    {T}{/T} 태그 사이의 문자열은 메시지 프로세서의 .properties 파일에서 설정할 수 있는 속성의 이름입니다.

메시지 프로세서에서 GC 수정

다음 단계에서는 Apigee 메시지 프로세서에서 GC 설정을 수정하는 방법을 설명합니다.

  1. 편집기에서 메시지 프로세서 머신의 /opt/apigee/customer/application/message-processor.properties 파일을 엽니다. 파일이 아직 없는 경우 파일을 만듭니다. 예를 들면 다음과 같습니다.
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. 타겟 프로필에 따라 원하는 GC 구성 행을 추가합니다.
    • 옵션 A: G1GC를 기본 가비지 컬렉터로 사용하고 일부 수정사항 적용:
      conf_system_useG1GC=true
      conf_system_useStringDeduplication=true
      conf_system_g1gc.g1ReservePercent=15
    • 옵션 B: 세대별 ZGC 사용 설정 (초저 지연 시간 배포에 선택사항)
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • 옵션 C: 일반 GC 설정 사용 설정

      구성요소의 .properties 재정의 파일 (/opt/apigee/customer/application/message-processor.properties) 에서 bin_setenv_ext_jvm_opts를 설정하여 일반 GC 속성을 구성한 후 구성요소를 다시 시작합니다. 예를 들면 다음과 같습니다.

      conf_system_useG1GC=false
      conf_system_useZGC=false
      bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
  3. 변경사항을 저장합니다.
  4. 이 속성 파일의 소유자가 apigee 사용자인지 확인합니다. 예를 들면 다음과 같습니다.
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 다음 명령어를 사용하여 메시지 프로세서를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 메시지 프로세서가 두 개 이상인 경우 모든 메시지 프로세서에서 이 단계를 반복합니다.

문자열 중복 삭제 업데이트

기본적으로 G1GC 구성은 UseStringDeduplication을 true로 설정합니다. 이렇게 하면 동일한 String 값이 단일 문자 배열을 공유할 수 있도록 하여 Java 힙 메모리 할당을 최적화합니다. 문자열 중복 삭제를 사용 중지하려면 conf_system_useStringDeduplication=false에서 /opt/apigee/customer/application/message-processor.properties를 설정하고 메시지 프로세서에서 GC 수정에 설명된 대로 메시지 프로세서를 다시 시작합니다.

메시지 프로세서에서 GC 구성 확인

메시지 프로세서에서 GC 구성 변경사항이 적용되었는지 확인하려면 다음 단계를 수행하세요.

  1. /opt/apigee/edge-message-processor/conf 디렉터리에서 GC 속성을 검색하고 새 값으로 설정되었는지 확인합니다. 예를 들면 다음과 같습니다.
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. /opt/apigee/edge-message-processor/conf/system.properties 에 새로 구성된 값이 반영되었는지 확인합니다. 예를 들어 Apigee 기본 GC 설정은 다음과 같이 표시됩니다.
    /opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
    /opt/apigee/edge-message-processor/conf/system.properties:useZGC=false
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.maxGCPauseMillis=200
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.initiatingHeapOccupancyPercent=45
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.g1ReservePercent=15
    /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
  3. 실행 중인 메시지 프로세서 JVM 프로세스가 예상된 -XX: 플래그로 시작되었는지 확인합니다.
    ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
    
    • Apigee 기본 G1GC의 경우 명령어 줄에 -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m이 포함되어 있는지 확인합니다.
    • 세대별 ZGC의 경우 명령어 줄에 다음이 포함되어 있는지 확인합니다. -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. 그래도 GC 설정을 구성할 수 없는 경우 Apigee Edge 지원팀에 문의하세요.

다음 단계