도구스개발

DB 커넥션 풀 크기 계산기

DB 서버 코어 수와 디스크 상태로 HikariCP 위키의 권장 커넥션 풀 크기(코어수×2 + 유효 스핀들 수)를 구합니다. 실측 전 출발점으로 쓰는 값입니다.

코어

권장 커넥션 풀 크기(시작점)

9개

풀 크기 = 코어수×2 + 유효 스핀들 수
코어 수 × 28
유효 스핀들 수1
확정값이 아니라 출발점으로 추정됩니다. HikariCP 저자가 공개한 경험식으로, DB 서버 코어 수 기준이지 애플리케이션(WAS) 서버 코어 수가 아닙니다. 커넥션을 늘린다고 처리량이 계속 느는 게 아니라, 오히려 컨텍스트 스위칭과 락 경합이 늘어 성능이 떨어질 수 있습니다. 실제 값은 반드시 부하테스트로 조정하세요.
「유효 스핀들 수」는 실제 디스크 종류가 아니라 캐시 미스율의 대리값입니다. 활성 데이터셋이 메모리에 전부 캐시되면 0, SSD/NVMe는 관례적으로 1을 씁니다.

사용 방법

  1. 1DB 서버(애플리케이션 서버가 아닌)의 물리 코어 수를 입력합니다.
  2. 2활성 데이터셋이 메모리에 얼마나 캐시되는지에 따라 디스크 상태를 고릅니다.
  3. 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일 · 결과는 참고용 추정치입니다.