티스토리 뷰

카테고리 없음

최대 DB 커넥션 개수

미니대왕님 2026. 3. 4. 13:54

1️⃣ 기본 개념

✅ maximumPoolSize란?

동시에 사용할 수 있는 최대 DB 커넥션 개수

예:

  • maximumPoolSize = 10
    → 동시에 10개의 DB 연결만 사용 가능
    → 11번째 요청은 대기

2️⃣ Spring Boot 설정 방법

✅ application.yml

 
spring:
datasource:
hikari:
maximum-pool-size: 20
minimum-idle: 10
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
 

✅ application.properties

 
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=1800000
 

3️⃣ 적정 값은 얼마로 해야 할까?

📌 공식 권장 계산식 (CPU 기반)

 
커넥션 수 = (코어 수 × 2) + 디스크 수
 

예:

  • CPU 4코어
    → (4 × 2) = 8~10 정도 권장

📌 일반적인 실무 권장 범위

환경권장 값
개발 5~10
중소 서비스 10~30
고트래픽 30~50 (DB 스펙에 따라 다름)

⚠ 무조건 많이 준다고 좋은 것이 아닙니다.


4️⃣ DB(PostgreSQL) max_connections 확인

DB 쪽도 제한이 있습니다.

 
SHOW max_connections;
 

예:

 
max_connections = 100
 

👉 전체 서버에서 사용할 수 있는 최대 연결 수

💡 여러 애플리케이션이 사용한다면 나눠 써야 합니다.


5️⃣ 과도하게 설정하면 생기는 문제

❌ DB 과부하
❌ 컨텍스트 스위칭 증가
❌ 오히려 성능 저하
❌ 메모리 부족


6️⃣ 추천 튜닝 전략

🎯 1단계

maximum-pool-size = 10~20

🎯 2단계

부하 테스트 진행 (JMeter 등)

🎯 3단계

CPU / DB 사용률 보면서 점진 증가


7️⃣ 실무에서 자주 쓰는 안정 세팅 예시

 
spring:
datasource:
hikari:
maximum-pool-size: 20
minimum-idle: 10
idle-timeout: 600000
max-lifetime: 1800000
connection-timeout: 30000
 

📌 핵심 정리

항목의미
maximumPoolSize 최대 동시 DB 연결 수
minimumIdle 최소 유지 연결 수
connectionTimeout 커넥션 대기 시간
maxLifetime 커넥션 최대 수명

🚨 중요한 팁

✔ DB max_connections 확인 필수
✔ 서버 CPU 코어 수 기준으로 설정
✔ 부하 테스트 없이 과도하게 늘리지 말 것
✔ 운영 환경에서는 모니터링 필수


원하시면
✔ HikariCP + PostgreSQL 최적 조합
✔ 대규모 트래픽 기준 계산 방법
✔ 커넥션 풀 고갈 문제 해결
✔ Kubernetes 환경에서 설정 방법

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2026/03   »
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 31
글 보관함