본문으로 건너뛰기

idle_session_timeout

버전기본값context타입
14userinteger
15userinteger
16userinteger
17userinteger
18userinteger
19userinteger

열린 transaction 없이 idle 상태(client의 쿼리를 기다리는 상태)로 지정한 시간보다 오래 머문 session을 종료한다. 단위 없이 값을 주면 밀리초로 해석하며, 기본값 0은 timeout을 끈다.

transaction을 연 채 idle인 경우와 달리, transaction 없는 idle session은 서버에 큰 비용을 주지 않는다. connection slot 하나와 약간의 메모리를 차지할 뿐이므로 idle_in_transaction_session_timeout만큼 켤 필요성이 크지 않다. 방치된 대화형 접속을 정리하거나 connection 수를 관리하려는 목적에 가깝다.

운영 노트: connection pooler나 미들웨어를 거치는 connection에 이 timeout을 적용하면 pooler가 예상치 못한 connection 종료에 제대로 대응하지 못할 수 있다. 전역으로 켜기보다는 ALTER ROLE ... SET으로 대화형 사용자 등 특정 role에만 적용하는 편이 안전하다.

출처: PostgreSQL 18 문서