자바 메모리 설정 수정

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

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

기본 및 권장 힙 메모리 크기

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

구성요소 속성 파일 이름 기본
힙 크기
권장
힙 크기
런타임
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
SymasLDAP 해당 사항 없음 네이티브 앱3 네이티브 앱3
Zookeeper zookeeper.properties 2,048MB 2,048MB
참고

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

2 메시지 프로세서의 경우 Apigee에서는 힙 크기를 3GB~6GB로 설정할 것을 권장합니다. 성능 테스트를 실행한 후에만 힙 크기를 6GB 이상으로 늘리세요.

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

3 일부 Private Cloud 구성요소는 Java로 구현되지 않습니다. 호스트 플랫폼에서 네이티브로 실행되는 앱은 Java 기반이 아니므로 구성 가능한 Java 힙 크기가 없습니다. 대신 메모리 관리를 위해 호스트 시스템을 사용합니다.

Apigee에서 노드의 Java 기반 구성요소에 할당하도록 권장하는 총 메모리 양을 확인하려면 해당 노드의 각 구성요소에 대해 위에 나열된 값을 더합니다. 예를 들어 노드에서 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

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

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

bin_setenv_max_mem

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

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

bin_setenv_meta_space_size

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

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

노드에서 힙 크기 속성을 설정할 때는 다음 예와 같이 메가바이트를 나타내는 'm' 접미사를 사용합니다.

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 속성 변경

위에 나열된 속성으로 제어되지 않는 Java 설정의 경우 Edge 구성요소의 해당 속성 파일에서 다음을 설정할 수도 있습니다.

  • bin_setenv_ext_jvm_opts: 다른 속성으로 지정되지 않은 Java 속성을 설정합니다. 예를 들면 다음과 같습니다.
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    하지만 bin_setenv_ext_jvm_opts를 사용하여 -Xms, -Xmx 또는 -XX:MetaspaceSize를 설정하지 마세요. 이러한 값은 위에 나열된 속성에 의해 제어되기 때문입니다.

프라이빗 클라우드 구성요소의 메모리 구성에 관한 추가 도움말은 Edge 포럼의 이 도움말을 참고하세요.