Aurora PostgreSQL의 향상된 메모리 관리 - Amazon Aurora

Aurora PostgreSQL의 향상된 메모리 관리

고객 워크로드가 DB 인스턴스에서 사용 가능한 여유 메모리를 소진하면 운영 체제에서 데이터베이스를 다시 시작하여 데이터베이스를 사용할 수 없게 됩니다. Aurora PostgreSQL은 여유 메모리 부족으로 인한 안정성 문제와 데이터베이스 재시작을 사전에 방지하는 향상된 메모리 관리 기능을 도입했습니다. 이 개선 사항은 다음 버전에서 기본적으로 사용할 수 있습니다.

  • 15.3 이상의 15 버전

  • 14.8 이상의 14 버전

  • 13.11 이상의 13 버전

  • 12.15 이상의 12 버전

  • 11.20 이상의 11 버전

메모리 관리를 개선하려면 다음 작업을 수행합니다.

  • 시스템의 메모리 사용량이 한계에 다다랐을 때 더 많은 메모리를 요청하는 데이터베이스 트랜잭션을 취소합니다.

  • 시스템이 물리적 메모리를 모두 소진하고 스왑을 소진하려고 할 때 메모리 사용량이 한계에 다다랐다고 합니다. 이러한 상황에서는 DB 인스턴스의 메모리 사용량을 즉시 줄이기 위해 메모리를 요청하는 모든 트랜잭션이 취소됩니다.

  • 필수 PostgreSQL 시작 관리자 및 Autovacuum 작업자 등의 백그라운드 작업자는 항상 보호됩니다.

메모리 관리 파라미터 구성

메모리 관리를 사용 설정하는 방법

이 옵션은 기본적으로 켜져 있습니다. 다음 예제와 같이 메모리 부족으로 트랜잭션이 취소되면 오류 메시지가 표시됩니다.

ERROR: out of memory Detail: Failed on request of size 16777216.
메모리 관리를 사용 해제하는 방법

이 기능을 해제하려면 아래와 같이 psql로 Aurora PostgreSQL DB 클러스터에 연결하고 파라미터 값에 SET 문을 사용합니다.

Aurora PostgreSQL 버전 11.21, 12.16, 13.12, 14.9, 15.4 및 이전 버전:

postgres=>SET rds.memory_allocation_guard = true;

rds.memory_allocation_guard 파라미터의 기본값은 파라미터 그룹에서 false로 설정됩니다.

Aurora PostgreSQL 12.17, 13.13, 14.10, 15.5 및 그 이상 버전:

postgres=>rds.enable_memory_management = false;

rds.enable_memory_management 파라미터의 기본값은 파라미터 그룹에서 true로 설정됩니다.

DB 클러스터 파라미터 그룹의 이러한 파라미터 값을 설정하면 쿼리가 취소되지 않습니다. DB 클러스터 파라미터 그룹에 대한 자세한 내용은 Amazon Aurora의 파라미터 그룹 섹션을 참조하세요.

향상된 메모리 관리에 세션을 포함하거나 제외하도록 세션 수준에서 이 동적 파라미터의 값을 설정할 수도 있습니다.

참고

이 기능을 끄면 메모리 부족 오류가 발생하여 시스템의 메모리 소진으로 인해 워크로드가 데이터베이스 재시작을 일으킬 수 있으므로, 권장되지 않습니다.