이 페이지에서는 PostgreSQL용 AlloyDB 적응형 자동 정리 기능에 대한 개요를 제공하고 구성 방법을 설명합니다.
진공 청소는 중요한 PostgreSQL 데이터베이스 유지보수 작업입니다. 업데이트되거나 삭제된 행이 차지하는 스토리지 공간을 재사용하여 테이블 또는 색인 부풀림을 방지하는 데 사용됩니다. 또한 트랜잭션 ID 랩어라운드를 방지하기 위해 트랜잭션 ID를 고정하고 테이블 통계를 업데이트하는 데도 사용됩니다.
진공 청소에 대한 자세한 내용은 일상적인 진공 청소를 참고하세요.
테이블 통계를 비우고 일괄적으로 업데이트하는 프로세스를 자동화하기 위해 AlloyDB는 적응형 자동 비우기를 지원합니다. 적응형 자동 청소기를 사용하면 워크로드가 변경될 때 자동으로 청소 워크로드를 조정하고, 비활성 튜플을 삭제하고, 테이블 통계를 업데이트할 수 있습니다.
Autovacuum은 안정적이고 일관된 애플리케이션 트랜잭션 성능을 보장하고 트랜잭션 ID 랩어라운드를 방지하여 시스템의 고가용성을 유지합니다.
기본적으로 AlloyDB는 적응형 자동 정리를 사용 설정합니다. 데이터베이스 플래그를 사용하여 AlloyDB에서 적응형 자동 정리를 사용 중지하거나 수정할 수 있습니다.
이점
적응형 자동 정리에는 다음과 같은 이점이 있습니다.
리소스 자동 조정 AlloyDB는 시스템 성능에 영향을 주지 않으면서 워크로드의 실시간 상태와 사용 가능한 리소스를 기반으로 CPU, I/O, 진공 프로세스 수, 진공 프로세스의 메모리와 같은 리소스를 자동으로 조정합니다.
트랜잭션 ID 랩어라운드 방지 AlloyDB는 진공 진행 상황과 트랜잭션 ID 소비 속도를 모니터링합니다. 필요한 경우 AlloyDB는 데이터베이스의 모든 테이블을 진공 청소하여 트랜잭션 ID 소비를 제한하여 트랜잭션 ID 랩어라운드를 방지합니다.
테이블의 주기적 진공 청소 AlloyDB는 비활성 튜플 수와 스캔해야 하는 페이지 수를 기반으로 autovacuum을 트리거합니다. 테이블 또는 색인 블로트를 방지하기 위해 적시에 비활성 튜플을 삭제합니다.
차단 프로그램 자동 감지 AlloyDB는 장기 실행 트랜잭션, 고아 준비 트랜잭션, 고아 복제 슬롯과 같은 차단 요소를 자동으로 감지하고
postgres
로그에 다음과 유사한 경고 메시지를 표시합니다.Found a backend process PROCESS_ID with a long running transaction whose transaction id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
적응형 자동 정리 구성
기본적으로 AlloyDB에서는 적응형 자동 정리 기능이 사용 설정되어 있습니다. 인스턴스의 enable_google_adaptive_autovacuum
데이터베이스 플래그를 off
로 설정하여 적응형 자동 청소기를 사용 중지할 수 있습니다.
데이터베이스 플래그 설정에 관한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.
AlloyDB는 vacuum 및 autovacuum과 관련된 여러 표준 PostgreSQL 데이터베이스 플래그(예: vacuum_cost_delay
및 autovacuum_vacuum_cost_delay
)를 지원합니다.
적응형 자동 정리 기능이 작동하려면 이러한 플래그에 값을 설정할 필요가 없습니다. 적응형 자동 정리 기능이 실제 워크로드에 맞게 동작을 조정하고 최적화하기 때문입니다.
이러한 플래그에 값을 설정하면 적응형 자동 vaccum이 환경설정을 고려하도록 동작을 조정합니다.
vacuum 및 autovacuum과 관련하여 지원되는 PostgreSQL 데이터베이스 플래그의 전체 목록은 vacuum 플래그 및 autovacuum 플래그를 참고하세요.