[PostgreSQL] postgresql too many clients already 오류 발생 및 해결 방법
- Database(데이터베이스)
- 2022. 10. 13. 21:23
참고
개요
- 현재 ADC Egde 에서는 postgreSQL 데이터베이스를 이용하여 서비스를 제공해주고 있습니다.
- 또한 pgAdmin, 그라파나 등에서도 postgres 에 직접 접근하여 Session 에 직접 영향을 주고 있습니다.
- 그러던 중에
too many clients already
라는 에러를 접하게 되었습니다.
too many clients already
에러 발생 원인
too many clients already
발생한 이유는, postgreSQL 에서 설정한max_connections
설정 값을 통해 Connection 수가 지정되어 있는데, Session Connection 수가 설정 값을 초과하여 발생하는 원인입니다.
too many clients already
too many clients already
에러가 발생하게 되면, Grafana 에서도 위와 같이 같은 에러 구문이 출력 되는 것을 확인할 수 있습니다.
해결 방법
- postgresql 에서
postgresql.conf
파일에 있는max_connections
옵션의 설정을 변경해주면 됩니다. postgresql.conf
파일에서 초기 Default 값으로max_connections = 100
으로 100개의 Session 까지 허용 되도록 되어있습니다.max_connections
설정 값을 100 에서 넉넉히 3000 까지 늘려주었습니다.
max_connections = 3000
DB 재기동
postgresql.conf
파일 수정을 완료 하였다면, DB 재기동을 해야 합니다.- 현재 Docker 컨테이너를 통하여 postgres 를 기동 중이기 때문에, Docker 컨테이너를 ReStart 합니다.
적용 확인
- DB 재기동 후,
max_connection
수가 100에서 3000으로 정상적으로 바뀌었는지 확인합니다. SHOW max_connections;
명령어를 통해 max_connection 적용된 값을 볼 수 있습니다.- 혹은 다음 SQL 구문으로 max_connection 수를 확인할 수 있습니다.
SELECT *
FROM pg_settings
WHERE name = 'max_connections';
- 3000 으로 정상 등록 된 것을 확인할 수 있습니다.
테스트 결과
- 현재 Session 수가 100개를 초과 하여도
too many clients already
에러가 발생하지 않는 것을 확인할 수 있습니다.
SELECT *
FROM pg_stat_activity
WHERE 1 = 1
AND DATNAME = '<DB 이름>'
- 위 SQL 구문을 통해서 현재 데이터베이스의 Session 수를 확인할 수 있습니다.
728x90
'Database(데이터베이스)' 카테고리의 다른 글
PostgreSQL - Docker Container로 실행하기 (0) | 2023.03.04 |
---|---|
[PostgreSQL] PostgreSQL Idle 상태의 Session 삭제 방법 (0) | 2022.10.28 |
[PostgreSQL] AutoVacuum 동작 테스트 (0) | 2022.07.10 |
[PostgreSQL] 아카이브 모드 백업을 이용한 특정 시점 복구 시나리오(Point In Time Recovery(PITR)) (0) | 2022.07.10 |
[PostgreSQL] 아카이브 모드 백업을 이용한 전체 복구 시나리오 (0) | 2022.07.08 |
이 글을 공유하기