View a markdown version of this page

PostgreSQL 버전 18의 적응형 autovacuum 개선 사항 - Amazon Aurora

PostgreSQL 버전 18의 적응형 autovacuum 개선 사항

RDS for PostgreSQL 버전 18부터 Amazon RDS는 DB 인스턴스가 트랜잭션 ID 랩어라운드에 가까워지면 autovacuum_max_workers를 동적으로 확장하도록 적응형 autovacuum 메커니즘을 개선합니다. 이전 PostgreSQL 버전에서 autovacuum_max_workers를 변경하려면 다시 시작해야 했습니다. PostgreSQL 18은 autovacuum_max_workers를 동적 파라미터로 만들므로 Amazon RDS가 다시 시작하지 않고 조정할 수 있습니다.

PostgreSQL 18에는 서버 시작 시 autovacuum 작업자를 위한 백엔드 프로세스 슬롯을 예약하는 새로운 파라미터 autovacuum_worker_slots도 도입되었습니다. 이 파라미터는 동시에 실행할 수 있는 autovacuum 작업자 수의 상한을 설정합니다. autovacuum_max_workers는 이 값을 초과할 수 없습니다. autovacuum_max_workers와 달리 autovacuum_worker_slots를 변경하려면를 다시 시작해야 합니다. 자세한 내용은 PostgreSQL 설명서의 autovacuum_worker_slots 섹션을 참조하세요.

적응형 autovacuum이 작업자를 조정하는 방법

MaximumUsedTransactionIDs CloudWatch 지표가 PostgreSQL 18 인스턴스에서 10억을 초과하면 Amazon RDS는 autovacuum_worker_slots 파라미터의 기본 공식인 다음 공식을 사용하여 autovacuum_max_workersautovacuum_worker_slots 값까지 높입니다.

LEAST(GREATEST({DBInstanceClassMemory/32185783296}, 16), 32)

중소 규모 인스턴스(최대 512GiB의 메모리)의 경우 적응형 autovacuum은 작업자 16명으로 확장됩니다. 더 큰 인스턴스의 경우 작업자 수는 메모리에 비례하여 최대 32개까지 확장됩니다. 예를 들어 db.m5.4xlarge 인스턴스(64GiB)의 기본 autovacuum_max_workers는 3입니다. MaximumUsedTransactionIDs가 10억 개를 초과하면 Amazon RDS는 이를 16명의 작업자로 확장합니다.

Amazon RDS는 사용자가 이미 구성한 값을 줄이지 않습니다. 구성된 autovacuum_max_workers가 이미 계산된 값보다 높으면 Amazon RDS는 이를 변경하지 않습니다.

각 autovacuum 작업자는 autovacuum_work_mem 설정까지 메모리를 사용합니다. 적응형 autovacuum이 작업자 수를 늘리면 autovacuum에서 사용하는 총 메모리가 비례하여 증가합니다. 예를 들어 autovacuum_work_mem이 1GB로 설정되어 있고 적응형 autovacuum이 작업자 3명에서 16명으로 조정되는 경우 autovacuum 작업자가 사용하는 최대 메모리는 3GB에서 16GB로 증가합니다.

주의

작업자 프로세스와 메모리의 합이 autovacuum에 할당하려는 총 메모리 양과 일치하는지 확인하세요.

적응형 autovacuum 변경 사항 모니터링

Amazon RDS가 autovacuum_max_workers 또는 기타 autovacuum 파라미터를 수정하면 해당 DB 인스턴스에 대한 이벤트가 생성됩니다. AWS Management Console 또는 Amazon RDS API를 통해 이러한 이벤트를 볼 수 있습니다. RDS 이벤트에 대한 자세한 내용은 Amazon RDS 이벤트 범주 및 이벤트 메시지를 참조하세요. 이러한 이벤트가 발생할 때 알림을 받으려면 Amazon RDS 이벤트 알림 구독을 참조하세요.

현재 메모리 내 autovacuum 설정을 보려면 DB 인스턴스에 연결하고 다음 명령을 실행합니다.

SHOW autovacuum_max_workers;

파라미터 그룹 값은 변경되지 않습니다. Amazon RDS는 이러한 파라미터를 DB 인스턴스의 메모리에서만 수정합니다. MaximumUsedTransactionIDs가 임계값 아래로 떨어지면 Amazon RDS는 파라미터를 파라미터 그룹의 값으로 재설정하고 다른 이벤트를 생성합니다.