Aurora PostgreSQL의 스토리지 문제 해결 - Amazon Aurora

Aurora PostgreSQL의 스토리지 문제 해결

정렬이나 인덱스 생성 작업에 필요한 작업 메모리 양이 work_mem 파라미터에 의해 할당된 메모리양을 초과할 경우, Aurora PostgreSQL는 잉여 데이터를 임시 디스크 파일에 기록합니다. Aurora PostgreSQL은 데이터를 기록할 때 오류와 메시지 로그 저장에 사용하는 것과 동일한 스토리지 공간, 즉 로컬 스토리지를 사용합니다. Aurora PostgreSQL DB 클러스터에 있는 각 인스턴스는 일정한 양의 로컬 스토리지를 사용할 수 있습니다. 스토리지의 양은 스토리지의 DB 인스턴스 클래스에 따라 달라집니다. 로컬 스토리지의 양을 늘리려면 더 큰 DB 인스턴스 클래스를 사용하도록 인스턴스를 수정해야 합니다. DB 인스턴스 클래스 사양은 Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양 단원을 참조하십시오.

FreeLocalStorage용 Amazon CloudWatch 지표를 관찰하면 Aurora PostgreSQL DB 클러스터의 로컬 스토리지 공간을 모니터링할 수 있습니다. 이 지표는 Aurora DB의 각 DB 인스턴스에서 임시 테이블 및 로그로 사용할 수 있는 스토리지 크기를 보고합니다. 자세한 내용은 Amazon CloudWatch로 Amazon Aurora 지표 모니터링 단원을 참조하십시오.

정렬, 인덱싱 및 그룹화 작업은 작업 메모리에서 시작되지만 로컬 스토리지에 오프로드해야 하는 경우가 많습니다. 이러한 유형의 작업 때문에 Aurora PostgreSQL DB 클러스터의 로컬 스토리지가 부족한 경우, 다음 작업 중 하나를 수행하여 문제를 해결할 수 있습니다.

  • 작업 메모리 양을 늘립니다. 이렇게 하면 로컬 스토리지를 사용할 필요가 줄어듭니다. 기본적으로 PostgreSQL은 각 정렬, 그룹 및 인덱스 작업에 4MB를 할당합니다. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 현재 작업 메모리 값을 확인하려면, psql을 사용하여 인스턴스에 연결하고 다음 명령을 실행합니다.

    postgres=> SHOW work_mem; work_mem ---------- 4MB (1 row)

    다음과 같이 정렬, 그룹화 및 기타 작업을 수행하기 전에 세션 수준에서 작업 메모리를 늘릴 수 있습니다.

    SET work_mem TO '1 GB';

    작업 메모리에 대한 자세한 내용은 PostgreSQL 설명서에서 리소스 소비를 참조하세요.

  • 로그가 더 짧은 기간 동안 저장되도록 로그 보존 기간을 변경합니다. 자세한 방법은 Aurora PostgreSQL 데이터베이스 로그 파일(을)를 참조하세요.

Aurora PostgreSQL DB 클러스터가 40TB보다 큰 경우 db.t2, db.t3 또는 db.t4g 인스턴스 클래스를 사용하지 마세요. T DB 인스턴스 클래스는 개발 및 테스트 서버 또는 기타 비프로덕션 서버에만 사용하는 것이 좋습니다. 자세한 내용은 DB 인스턴스 클래스 유형 단원을 참조하십시오.