DB 커넥션 풀 크기 계산기
DB 서버 코어 수와 디스크 상태로 HikariCP 위키의 권장 커넥션 풀 크기(코어수×2 + 유효 스핀들 수)를 구합니다. 실측 전 출발점으로 쓰는 값입니다.
권장 커넥션 풀 크기(시작점)
9개
사용 방법
- 1DB 서버(애플리케이션 서버가 아닌)의 물리 코어 수를 입력합니다.
- 2활성 데이터셋이 메모리에 얼마나 캐시되는지에 따라 디스크 상태를 고릅니다.
- 3권장 풀 크기를 출발점으로 삼고 부하테스트로 조정합니다.
자주 묻는 질문
HikariCP 위키가 공개한 경험식 「풀 크기 = (코어 수 × 2) + 유효 스핀들 수」를 출발점으로 씁니다. DB 서버가 처리할 수 있는 동시 작업 수를 코어 수에 연결한 식입니다.
커넥션이 늘어나도 DB가 실제로 동시에 처리할 수 있는 작업은 코어 수에 묶여 있습니다. 커넥션을 필요 이상 늘리면 컨텍스트 스위칭과 락 경합만 늘어 오히려 처리량이 떨어질 수 있습니다. 애플리케이션 서버 코어 수가 아니라 DB 서버 코어 수를 기준으로 삼는 이유입니다.
이름은 회전 디스크(spindle) 수지만, 실제로는 활성 데이터셋이 메모리에 얼마나 캐시되는지의 대리값입니다. 데이터셋이 완전히 캐시되면 디스크 I/O가 거의 없으므로 0을 쓰고, 캐시 히트율이 낮아질수록 실제 스핀들 수에 가까워집니다. SSD/NVMe는 회전판이 없지만 관례적으로 1을 씁니다.
아닙니다. HikariCP 저자가 직접 "실측 후 조정할 출발점"이라 밝힌 경험칙입니다. 실제 커넥션 풀 크기는 트래픽 패턴·쿼리 시간·DB 종류에 따라 다르므로 이 값을 시작점 삼아 부하테스트로 조정해야 합니다.
커넥션마다 DB 쪽에서 메모리와 스레드를 점유합니다. 동시에 처리할 수 있는 작업 수(대략 코어 수)를 넘는 커넥션은 대기하거나 컨텍스트 스위칭 비용만 늘리므로, "커넥션이 많을수록 빠르다"는 직관과 달리 오히려 느려질 수 있습니다.
이 식은 인스턴스 하나를 기준으로 합니다. 인스턴스별로 각각 코어 수를 넣어 따로 계산하고, 애플리케이션이 여러 인스턴스에 나눠 접속한다면 전체 커넥션 합이 각 DB 서버가 감당할 수 있는 범위 안에 있는지 확인하세요.
알아두면 좋은 점
- 출처: HikariCP wiki "About Pool Sizing". 저자 스스로 실측 후 조정할 출발점이라 밝힌 경험칙입니다.
- DB 서버의 물리 코어 수 기준입니다. 애플리케이션(WAS) 서버 코어 수와 혼동하지 마세요.
- 트래픽 패턴·쿼리 특성에 따라 최적값이 달라지므로 반드시 부하테스트로 확인하세요.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 4일 · 결과는 참고용 추정치입니다.