DBAtlas · 데이터베이스 운영 아틀라스

53300: too_many_connections

PostgreSQL

의미

서버가 max_connections가 허용하는 최대 동시 접속 수에 도달해 새 접속을 받을 수 없다.

원인

커넥션 풀이 없거나 크기가 잘못됨, 커넥션 누수, 수명이 짧은 접속을 많이 여는 애플리케이션, 또는 워크로드보다 낮게 설정된 max_connections.

해결 방법

접속 출처를 식별한다: SELECT usename, state, COUNT(*) FROM pg_stat_activity GROUP BY 1,2. 오래 idle 상태인 클라이언트 접속은 대상을 한정해 종료한다(필터 없는 일괄 종료는 모든 애플리케이션과 풀에 영향을 준다): SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND backend_type = 'client backend' AND usename = 'app_user' AND state_change < now() - interval '10 minutes' AND pid <> pg_backend_pid(). 근본 해결은 PgBouncer 같은 커넥션 풀이다. max_connections를 늘리면 메모리 비용이 들므로 풀링을 우선한다. superuser용으로 예약된 접속이 관리 접근을 보장한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목