RDS for Oracle 인스턴스에 HugePages 활성화 - Amazon Relational Database Service

RDS for Oracle 인스턴스에 HugePages 활성화

Amazon RDS for Oracle은 Linux 커널 HugePages를 지원해 데이터베이스 확장성을 높입니다. HugePages를 사용하면 페이지 표가 작아지고 메모리 관리에 사용되는 CPU 시간이 줄어 대용량 데이터베이스 인스턴스의 성능이 높아집니다. 자세한 내용은 Oracle 문서의 Overview of HugePages 단원을 참조하세요.

HugePages는 지원되는 모든 버전의 RDS for Oracle에서 사용할 수 있습니다.

use_large_pages 파라미터는 DB 인스턴스에서 HugePages의 활성화 여부를 제어합니다. 이 파라미터는 ONLY, FALSE 또는 {DBInstanceClassHugePagesDefault}로 설정할 수 있습니다. Oracle용 기본 DB 파라미터 그룹에서는 use_large_pages 파라미터가 {DBInstanceClassHugePagesDefault}로 설정됩니다.

DB 인스턴스에서 HugePages의 자동 활성화 여부를 제어하기 위해 파라미터 그룹에서 DBInstanceClassHugePagesDefault 수식 변수를 사용할 수 있습니다. 값은 다음과 같이 결정합니다.

  • 다음 표에서 언급한 DB 인스턴스 클래스의 경우 DBInstanceClassHugePagesDefault는 항상 FALSE가 기본값이며 use_large_pagesFALSE로 평가됩니다. 이때는 DB 인스턴스 클래스의 메모리 크기가 14GiB 이상이라면 이러한 DB 인스턴스 클래스의 HugePages를 수동으로 활성화할 수 있습니다.

  • 다음 표에서 언급하지 않은 DB 인스턴스 클래스의 경우 DB 인스턴스 클래스의 메모리가 14GiB 미만이면 DBInstanceClassHugePagesDefault는 항상 FALSE로 평가됩니다. 또한 use_large_pagesFALSE로 평가됩니다.

  • 다음 표에서 언급하지 않은 DB 인스턴스 클래스의 경우 인스턴스 클래스의 메모리가 14GiB 이상에서 100GiB 미만이면 DBInstanceClassHugePagesDefault의 기본값이 TRUE로 평가됩니다. 또한 use_large_pagesONLY로 평가됩니다. use_large_pagesFALSE로 설정하면 HugePages를 수동으로 비활성화할 수 있습니다.

  • 다음 표에서 언급하지 않은 DB 인스턴스 클래스의 경우 인스턴스 클래스의 메모리가 100GiB 이상이면 DBInstanceClassHugePagesDefault는 항상 TRUE로 평가됩니다. 또한 use_large_pagesONLY로 평가되며 HugePages는 비활성화할 수 없습니다.

다음 DB 인스턴스 클래스의 경우, HugePages가 기본적으로 활성화되지 않습니다.

DB 인스턴스 클래스 패밀리 HugePages가 기본적으로 활성화되지 않는 DB 인스턴스 클래스

db.m5

db.m5.large

db.m4

db.m4.large, db.m4.xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.10xlarge

db.t3

db.t3.micro, db.t3.small, db.t3.medium, db.t3.large

DB 인스턴스 클래스에 대한 자세한 내용은 에 대한 DB 인스턴스 클래스의 하드웨어 사양 단원을 참조하세요.

신규 또는 기존 DB 인스턴스에 HugePages를 수동으로 활성화하려면 use_large_pages 파라미터를 ONLY로 설정합니다. Oracle Automatic Memory Management(AMM)에 HugePages를 사용할 수 없습니다. 파라미터 use_large_pagesONLY로 설정하면 memory_targetmemory_max_target0으로 설정해야 합니다. DB 인스턴스를 위한 DB 파라미터를 설정하는 자세한 방법은 Amazon RDS의 파라미터 그룹 단원을 참조하세요.

sga_target, sga_max_size, pga_aggregate_target 파라미터도 설정할 수 있습니다. 시스템 글로벌 영역(SGA)과 프로그램 글로벌 영역(PGA) 메모리 파라미터를 설정할 때 값을 모두 더합니다. 사용 가능한 인스턴스 메모리(DBInstanceClassMemory)에서 이 합산 값을 빼면 HugePages 할당 후 가용 메모리를 알 수 있습니다. 최소 2GiB 또는 총 가용 인스턴스 메모리의 10퍼센트 중에서 적은 용량을 비워두어야 합니다.

파라미터를 구성한 후 DB 인스턴스를 재부팅해야 변경 사항이 적용됩니다. 자세한 내용은 DB 인스턴스 재부팅 섹션을 참조하세요.

참고

장애 조치 없이 인스턴스를 재부팅할 때까지 Oracle DB 인스턴스는 SGA 관련 초기화 파라미터에 대한 변경 사항을 연기합니다. Amazon RDS 콘솔에서 재부팅을 선택하지만 장애 조치로 재부팅선택하지 않습니다. AWS CLI에서 reboot-db-instance 파라미터로 --no-force-failover 명령을 호출합니다. DB 인스턴스는 장애 조치 중이나 인스턴스를 다시 시작하는 기타 유지 관리 작업 중에는 SGA 관련 파라미터를 처리하지 않습니다.

다음은 HugePages를 수동으로 활성화할 수 있는 샘플 파라미터 구성입니다. 사용자의 필요에 맞게 값을 설정해야 합니다.

memory_target = 0 memory_max_target = 0 pga_aggregate_target = {DBInstanceClassMemory*1/8} sga_target = {DBInstanceClassMemory*3/4} sga_max_size = {DBInstanceClassMemory*3/4} use_large_pages = ONLY

파라미터 그룹에서 파라미터 값이 다음과 같이 설정되어 있다고 가정합니다.

memory_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) memory_max_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) pga_aggregate_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0) sga_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) sga_max_size = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) use_large_pages = {DBInstanceClassHugePagesDefault}

이 파라미터 그룹은 메모리가 100GiB 미만인 db.r4 DB 인스턴스 클래스에서 사용됩니다. 이렇게 파라미터를 설정하고 use_large_pages{DBInstanceClassHugePagesDefault}로 설정되면 db.r4 인스턴스에서 HugePages가 활성화됩니다.

또 다른 예제에서는 파라미터 그룹의 파라미터 값이 다음과 같이 설정되어 있다고 가정합니다.

memory_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) memory_max_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) pga_aggregate_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0) sga_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) sga_max_size = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) use_large_pages = FALSE

위의 파라미터 그룹은 db.r4 DB 인스턴스 클래스와 db.r5 DB 인스턴스 클래스 모두에서 메모리가 100GiB 미만일 때 사용됩니다. 이 파라미터 설정을 사용하면 db.r4 및 db.r5 인스턴스에서 HugePages가 비활성화됩니다.

참고

위의 파라미터 그룹이 메모리 크기가 100GiB 이상인 db.r4 DB 인스턴스 클래스 또는 db.r5 DB 인스턴스에서 사용될 경우에는 FALSEuse_large_pages 설정이 ONLY 설정으로 재정의됩니다. 이때는 재정의에 대한 알림 메시지가 고객에게 전송됩니다.

DB 인스턴스에 HugePages가 활성화된 후 향상된 모니터링을 활성화하여 방대한 페이지 정보를 볼 수 있습니다. 자세한 내용은 Enhanced Monitoring을 사용하여 OS 지표 모니터링 섹션을 참조하세요.