idle_session_timeout
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | — | user | integer |
| 15 | — | user | integer |
| 16 | — | user | integer |
| 17 | — | user | integer |
| 18 | — | user | integer |
| 19 | — | user | integer |
열린 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 문서