자바 메모리 설정 수정

트래픽 및 처리 요구사항에 따라 자바 기반 Private Cloud 구성요소를 실행하는 노드의 힙 메모리 크기 또는 클래스 메타데이터 크기를 변경해야 할 수 있습니다.

이 섹션에서는 기본 및 권장 자바 힙 메모리 크기와 기본값을 변경하는 프로세스를 제공합니다. 마지막으로 이 섹션에서는 속성 파일을 사용하여 다른 JVM 설정을 변경하는 방법을 설명합니다.

기본 및 권장 힙 메모리 크기

다음 표에는 자바 기반 프라이빗 클라우드 구성요소의 기본 및 권장 자바 힙 메모리 크기가 나와 있습니다.

구성요소 속성 파일 이름 기본
힙 크기
권장
힙 크기
런타임
Cassandra 해당 사항 없음 자동 구성1 자동 구성1
메시지 프로세서 message-processor.properties 512MB 3GB~6GB2
라우터 router.properties 512MB 512MB
분석
Postgres 서버 postgres-server.properties 512MB 512MB
Qpid 서버 qpid-server.properties 512MB 2GB~4GB
관리
관리 서버 management-server.properties 512MB 512MB
UI ui.properties 512MB 512MB
OpenLDAP 해당 사항 없음 네이티브 앱3 네이티브 앱3
Zookeeper zookeeper.properties 2,048MB 2,048MB
Notes

1 Cassandra는 시작될 때 최대 힙 크기를 동적으로 계산합니다. 현재 총 시스템 메모리의 절반으로 최대 8,192MB입니다. 힙 크기 설정에 관한 자세한 내용은 힙 메모리 크기 변경을 참고하세요.

2 메시지 프로세서의 경우 Apigee에서는 힙 크기를 3GB~6GB로 설정하는 것이 좋습니다. 성능 테스트를 실행한 후에만 힙 크기를 6GB 이상으로 늘립니다.

성능 테스트 중에 힙 사용량이 최대 한도에 가까워지면 최대 한도를 늘립니다. 힙 크기 설정에 관한 자세한 내용은 힙 메모리 크기 변경을 참고하세요.

3 모든 프라이빗 클라우드 구성요소가 자바로 구현되는 것은 아닙니다. 자바 기반 앱이 아니기 때문에, 호스트 플랫폼에서 기본적으로 실행되는 앱은 구성 가능한 자바 힙 크기를 갖고 있지 않습니다. 대신 메모리 관리를 위해 호스트 시스템에 의존합니다.

Apigee에서 노드의 자바 기반 구성요소에 할당하도록 권장하는 총 메모리 양을 확인하려면 해당 노드의 각 구성요소에 대해 위에 나열된 값을 추가합니다. 예를 들어 노드가 Postgres 서버와 Qpid 서버를 모두 호스팅하는 경우 Apigee에서는 결합된 메모리 할당을 2.5GB~4.5GB로 권장합니다.

필수 하드웨어 (예: RAM) 목록은 설치 요구사항을 참고하세요.

힙 메모리 크기 변경

힙 메모리 설정을 변경하려면 구성요소의 속성 파일을 수정합니다. 예를 들어 메시지 프로세서의 경우 /opt/apigee/customer/application/message-processor.properties 파일을 수정합니다.

message-processor.properties 파일이 없거나 Edge 구성요소에 해당하는 .properties 파일이 존재하지 않으면 파일을 만든 다음 파일 소유권을 'apigee' 사용자로 변경합니다. 다음 예에 나와 있습니다.

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

구성요소가 메시지 프로세서와 같은 여러 머신에 설치된 경우 구성요소를 호스팅하는 모든 머신에서 속성 파일을 수정해야 합니다.

다음 표에는 힙 크기를 변경하기 위해 수정하는 속성이 나와 있습니다.

속성 설명
bin_setenv_min_mem

최소 힙 크기 기본값은 기본 및 권장 힙 메모리 크기에 나열된 값을 기반으로 합니다.

이 설정은 자바 -Xms 옵션에 해당합니다.

bin_setenv_max_mem

최대 힙 크기. 기본값은 기본 및 권장 힙 메모리 크기에 나열된 값을 기반으로 합니다.

이 설정은 자바 -Xmx 옵션에 해당합니다.

bin_setenv_meta_space_size

기본 클래스 메타데이터 크기입니다. 기본값은 bin_setenv_max_permsize 값으로 설정되며 기본값은 128MB입니다. Apigee는 메시지 프로세서에서 이 값을 트래픽에 따라 256MB 또는 512MB로 설정할 것을 권장합니다.

이 설정은 자바 -XX:MetaspaceSize 옵션에 해당합니다.

노드에서 힙 크기 속성을 설정할 때는 다음 예에 표시된 것처럼 'm' 접미사를 사용하여 MB를 나타냅니다.

bin_setenv_min_mem=4500m
bin_setenv_max_mem=4500m
bin_setenv_meta_space_size=1024m

속성 파일에서 값을 설정한 후에는 구성요소를 다시 시작합니다.

/opt/apigee/apigee-service/bin/apigee-service component restart

예를 들면 다음과 같습니다.

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

다른 JVM 속성 변경

위에 나열된 속성으로 제어되지 않는 자바 설정의 경우 Edge 구성요소의 추가 JVM 플래그 또는 값을 전달할 수도 있습니다. Bash에서 *.properties 파일을 읽고 리터럴 문자를 보존하려면 '(작은따옴표)로 묶거나 셸 확장이 필요한 경우 "(큰따옴표)로 묶어야 합니다.

  • bin_setenv_ext_jvm_opts: 다른 속성에 의해 지정되지 않은 자바 속성을 설정합니다. 예를 들면 다음과 같습니다.
    bin_setenv_ext_jvm_opts='-XX:MaxGCPauseMillis=500'

    그러나 -Xms, -Xmx 또는 -XX:MetaspaceSize는 위에 나열된 속성에 의해 제어되므로 이러한 값을 설정하기 위해 bin_setenv_ext_jvm_opts를 사용하지 마세요.

Private Cloud 구성요소의 메모리 구성에 대한 추가 팁은 Edge 포럼의 이 문서를 참조하세요.