DB
DB 커넥션 풀 사이즈 설정 기준 - Java 개발자 기준
ZZJJing
2025. 6. 11. 16:29
반응형
커넥션 풀이란?
- DB 연결을 미리 생성해서 풀에 저장
- 요청 시 풀에서 가져다 쓰고 반납
- 매번 새로 생성/삭제하는 오버헤드 제거
풀 사이즈가 중요한 이유
- 너무 작으면: 대기 시간 증가, 성능 저하
- 너무 크면: 메모리 낭비, DB 부하 증가
- 적절한 균형점 찾는 것이 핵심
기본 설정 공식
최소 풀 사이즈 = CPU 코어 수
최대 풀 사이즈 = CPU 코어 수 × 2 ~ 4
[홈페이지 제작 기준 설정값]
소규모 개인 홈페이지
- 최소: 2-5개
- 최대: 10-20개
- 동시 접속자 50명 이하
중소규모 회사 홈페이지
- 최소: 5-10개
- 최대: 20-50개
- 동시 접속자 100-500명
대규모 서비스
- 최소: 10-20개
- 최대: 50-100개 이상
- 부하 테스트 필수
HikariCP 설정 예시
# application.yml
spring:
datasource:
hikari:
minimum-idle: 5
maximum-pool-size: 20
connection-timeout: 20000
idle-timeout: 300000
max-lifetime: 1200000
모니터링 체크 포인트
- 활성 커넥션 수
- 대기 중인 요청 수
- 커넥션 생성/삭제 빈도
- 응답 시간 변화
튜닝 팁
점진적 증가
- 작은 값으로 시작
- 부하 테스트 실행
- 단계별 증가
- 최적값 찾기
상황별 조정
- 읽기 위주: 작은 풀 사이즈
- 쓰기 위주: 큰 풀 사이즈
- 배치 작업: 별도 풀 구성
주의사항
- DB 최대 커넥션 수 확인 필수
- 여러 앱이 같은 DB 사용시 총합 고려
- 커넥션 누수 방지 (try-with-resources 사용)
- 정기적인 모니터링과 조정
실제 운영 경험
- 처음엔 작게 설정하고 점차 늘리기
- 피크 시간대 모니터링 중요
- 예상보다 적은 커넥션으로도 충분한 경우 많음
- 애플리케이션 특성에 따라 천차만별
728x90
반응형