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

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

AWS
AWS
2025년 9월 30일

두줄요약

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

문제 상황

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

원인 분석

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

해결 방법

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

댓글 0

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

댓글을 불러오는 중...