본문 바로가기
Q&A2026년 4월 12일1분 읽기

PostgreSQL UPDATE가 트래픽 몰릴 때만 lock wait timeout으로 멈춥니다

개발자준호
조회 305댓글 4

운영 중인 서비스에 조회수 카운터가 있는데, 평소엔 문제없다가 피크 트래픽 때만 이런 로그가 찍히고 트랜잭션이 늘어집니다.

ERROR: canceling statement due to lock timeout
CONTEXT: while updating tuple (42,17) in relation "counters"

쿼리는 아주 단순합니다.

UPDATE counters SET value = value + 1 WHERE key = 'page_view_home';

SELECT FOR UPDATE는 안 쓰고 있고, 단건 UPDATE 하나뿐인데 왜 lock이 쌓이는지 궁금합니다. 같은 행을 여러 워커가 동시에 업데이트하는 구조라는 건 맞습니다.

환경은 PostgreSQL 16, 커넥션 풀은 pgbouncer, 워커는 20개 정도입니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록