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 인스턴스 클래스 유형 단원을 참조하십시오.