외부 데이터베이스의 모니터링 및 로깅 설정
외부 PostgreSQL 데이터베이스 시스템은 성능 모니터링 및 문제 해결을 위한 다양한 로깅 옵션을 제공하지만, 기본적으로 활성화되어 있지 않습니다. 이 섹션에서는 Self-Managed형 PostgreSQL 및 일부 주요 PostgreSQL 관리 서비스 제공업체에 대한 권장 설정을 제공합니다.
권장 PostgreSQL 로깅 설정
다음과 같은 로깅 설정을 활성화해야 합니다:
-
log_statement=ddl
: 데이터베이스 모델 정의 (DDL) 변경 사항인CREATE
,ALTER
또는DROP
과 같은 작업을 로깅합니다. 이를 통해 최근 모델 변경 사항을 추적하여 성능 문제의 원인을 파악하고 보안 침해 및 인간 에러를 식별하는 데 도움이 됩니다. -
log_lock_waits=on
: 일정 기간 동안 잠금을 보유한 프로세스를 로깅합니다. 이는 쿼리 성능 저하의 일반적인 원인입니다. -
log_temp_files=0
: 강도 높은 이상한 임시 파일의 사용을 로깅하여 쿼리 성능 문제를 나타낼 수 있습니다. -
log_autovacuum_min_duration=0
: 모든 autovacuum 실행을 로깅합니다. Autovacuum은 전체 PostgreSQL 엔진 성능에 중요한 컴포넌트입니다. 테이블에서 dead tuple이 제거되지 않는 경우 troubleshooting 및 tuning에 필수적입니다. -
log_min_duration_statement=1000
: 느린 쿼리 (1초보다 느린 쿼리)를 로깅합니다.
위의 매개변수 설정에 대한 상세 설명은 PostgreSQL 오류 보고 및 로깅 문서에서 찾을 수 있습니다.
Amazon RDS
Amazon Relational Database Service (RDS)는 많은 모니터링 메트릭 및 로깅 인터페이스를 제공합니다. 다음은 구성해야 할 몇 가지 사항입니다:
- 권장하는 PostgreSQL 로깅 설정을 RDS Parameter Groups를 통해 변경하십시오.
- RDS 성능 인사이트를 활성화하여 PostgreSQL 데이터베이스 엔진의 많은 중요한 성능 메트릭을 시각화할 수 있습니다.
-
RDS Enhanced Monitoring을 활성화하여 운영 체제 메트릭을 모니터링합니다. 이러한 메트릭은 데이터베이스 성능에 영향을 미치는 기본 하드웨어 및 운영 체제의 병목 현상을 나타낼 수 있습니다.
- 프로덕션 환경에서는 모니터링 간격을 10초(또는 그 이하)로 설정하여 성능 문제의 원인이 될 수 있는 리소스 사용의 미세 버스트를 캡처합니다. 콘솔에서
Granularity=10
또는 CLI에서monitoring-interval=10
을 설정하십시오.
- 프로덕션 환경에서는 모니터링 간격을 10초(또는 그 이하)로 설정하여 성능 문제의 원인이 될 수 있는 리소스 사용의 미세 버스트를 캡처합니다. 콘솔에서