목록 보기
PostgreSQL 성능 개선: 락 매니저 경합 진단 및 완화
백엔드

PostgreSQL 성능 개선: 락 매니저 경합 진단 및 완화

AWS
AWS
2025년 9월 30일

두줄요약

파티션 프루닝, 인덱스 정리, 조인 단순화로 PostgreSQL의 락 매니저 경합을 줄이는 방법을 다뤘습니다. 16개 빠른 경로 슬롯 초과 시 성능 저하가 커지며, 최적화로 TPS가 개선되었습니다.

문제 상황

  • 읽기 중심 PostgreSQL 워크로드에서 파티션 수, 인덱스 수, 다중 조인 복잡성으로 락 매니저 경합이 발생
  • 빠른 경로 잠금 16개 한도를 넘으면 공유 메모리 락 해시 테이블로 전환되며 LWLock:LockManager 대기 증가

원인 분석

  • 파티션 프루닝이 되지 않아 모든 파티션과 인덱스에 대한 잠금 필요
  • 사용하지 않거나 중복된 인덱스가 많아 AccessShareLock 누적
  • 다중 조인 쿼리가 여러 테이블과 인덱스의 락을 동시에 유발

해결 방법

  • 파티션 프루닝이 되도록 명시적 날짜 범위 조건 사용
  • 상수가 드러나지 않는 CTE 대신 PL/pgSQL 동적 SQL로 쿼리 구성
  • 불필요한 인덱스 제거, 중복 인덱스 통합, 조인 단순화

다음 읽기

#PostgreSQL 주제를 이어서 읽기

Amazon Aurora PostgreSQL과 RDS PostgreSQL 환경에서 TOAST OID 충돌로 인한 성능 저하 현상의 진단 및 해결 방안

Aurora PostgreSQL과 RDS PostgreSQL에서 TOAST OID 고갈이 INSERT 지연을 유발하는 원인과 진단 방법을 정리했습니다. 단기 대응과 함께 파티셔닝, 지속 모니터링 같은 장기 대응이 중요하다고 설명했습니다.

AWS
AWS
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...