Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

ultra_dev

DB Connection Pool !! 본문

DB

DB Connection Pool !!

ultra_dev 2024. 1. 4. 16:56

 

문제:

사내에서 docker로 postgreSQL을 띄우고 로컬에서 DB에 연결해서 프로젝트를 개발중이었다. 

 

그런데 해당 postgreSQL에 연결된 다른 테스트용 솔루션들이 에러를 뱉기 시작했다. 

500에러 발생..! 

 

로그를 확인해서 원인을 찾아보니 too many connections ~ 

 

즉, 해당 PostgreSQL의 커넥션 풀이 부족하다는 것!

 

데이터베이스의 session을 확인해보니 

was 하나 당 db connection이 default로 10개 잡혀 있는데

 

여러명이 해당 PostgreSQL과 연결해서 로컬에서 개발을 진행하다보니

postgres default max connection인 100개가 넘어가면서

postgres db에 접근을 못하게 되면서 발생하는 문제였다.

 

해결:

 

docker가 켜져있는 리눅스 서버에 원격 접속해서

 

sudo docker exec -it 도커컨테이너id vi /var/lib/postgresql/data/postgresql.conf

 

vi 모드로 postgresql.conf 파일을 들어가서

max connection을 수정!

 

현재는 여유롭게 사용 중이다.

 

 

ConnectionPool에 대해 복습할 수 있었던 좋은 경험이었다!! 

WAS 단위로만 생각했었는데 저렇게 DB단위로 MaxConnection을 설정할 수 있고 PostgreSQL 내 다른 데이터베이스에도 전부 영향을 미친다는 걸 알 수 있어서 신기했다.

 

 

그리고 

was가 켜지자마자 바로 db 세션에 커넥션이 10개씩(커넥션풀 갯수 default일 때) 잡히는 걸 확인하면서

커넥션풀이 어떤 식으로 작동하는 지를 알 수 있었던 것 같다. 

+

커넥션 정보에 접속 ip, 어떤 어플리케이션으로 실행했는지, 어떤 쿼리를 언제 날렸는지 등등 여러 요소가 표시되는 걸 보니 재밌었다! 

 

 

 

 

 

'DB' 카테고리의 다른 글

DB 이것 저것 정리! (feat.SQL 실행순서..)  (0) 2024.01.19
Docker 내부 PostgresSQL Dump  (0) 2023.12.08
SQL -3  (0) 2023.01.13
SQL -2  (0) 2023.01.13
SQL -1  (0) 2023.01.13
Comments