자바 메모리 설정 수정

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

이 섹션에서는 기본값 및 권장 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
OpenLDAP 해당 사항 없음 네이티브 앱3 네이티브 앱3
Zookeeper zookeeper.properties 2,048MB 2,048MB
참고

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

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 구성요소에 JVM 플래그 또는 값을 추가로 전달할 수도 있습니다. *.properties 파일은 Bash에서 읽히며 리터럴 문자를 유지하려면 '(작은따옴표)로 묶어야 하고 셸 확장이 필요한 경우 "(큰따옴표)로 묶어야 합니다.

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

    하지만 bin_setenv_ext_jvm_opts를 사용하여 -Xms, -Xmx 또는 -XX:MetaspaceSize를 설정하지 마세요. 이러한 값은 위에 나열된 속성으로 제어됩니다.

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