JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

적정 파티션 개수 계산하는 방법

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
Kafka
createdAt
Dec 6, 2025
series
실전에서 바로 써먹는 Kafka 입문
slug
how-to-calc-optimal-partitions
type
post
updatedAt
Dec 6, 2025 05:39 AM

✅ 적정 파티션 개수 계산하는 방법

적정 파티션 개수를 정할 때의 핵심은 ‘처리가 지연되는 메시지가 생기지 않는 선에서 파티션을 최소로 설정하는 것’이다. 공식으로 표현하자면 다음 공식을 만족하게 파티션 수를 결정하면 된다.
프로듀서가 보내는 메시지량 ≤ 하나의 쓰레드가 처리하는 메시지량 x 파티션 수
 
 
notion image
이 설명을 조금 더 쉽게 이해하기 위해서 대형 마트를 다시 한 번 떠올려보자. 대형 마트에 계산대를 몇 대를 열 지 결정할 때, 손님이 계산을 하기까지 많이 안 기다리는 선에서 계산대의 수를 정해야 할 것이다. 계산대를 적게 열면 계산을 기다리는 손님의 줄이 시간이 갈수록 엄청 길어지면서 불만이 터져나올 것이다. 그렇다고 계산대를 무작정 많이 열게 되면 직원을 많이 고용해야 하기 때문에 마트 입장에서는 손해이다. 그래서 손님의 줄이 길어지지 않는 선에서 계산대 수를 결정해야 할 것이다.
 
다시 본론으로 돌아가서 파티션 수를 결정하는 방법에 대해 알아보자.
  1. 몇 개의 쓰레드를 사용해야 처리량이 가장 높아지는 지 측정하기
    1. Spring Boot 서버는 멀티 쓰레드 기반이기 때문에 동시에 여러 요청을 처리할 수 있다. 이 때, 몇 개의 쓰레드를 사용해야 요청을 가장 많이 처리할 수 있는 지 측정해야 한다.
      ** 부하 테스트에 대한 개념을 알고 있어야 한다. 만약 모른다면 ‘대규모 트래픽 처리를 위한 부하테스트 입문/실전’ 강의를 수강할 것을 추천한다.
      → 100개의 쓰레드를 활용하는 게 가장 효율적이라고 측정했다고 가정하자.
       
  1. 하나의 컨슈머 서버가 처리할 수 있는 최대 처리량(Throughput)을 알아내기
    1. 컨슈머 서버가 적절한 쓰레드 개수를 기반으로 요청을 처리한다고 했을 때, 최대 처리량(Throughput)이 얼마나 되는 지 측정해야 한다.
      → 하나의 컨슈머 서버(100개의 쓰레드를 활용)가 1초에 처리할 수 있는 처리량(Throughput)이 30이라는 걸 알아냈다고 가정하자. 즉, 1개의 쓰레드가 1초당 0.3개의 요청을 처리한다는 뜻이다.
       
  1. 프로듀서가 보내는 평균 메시지량 알아내기
    1. 프로듀서가 보내는 메시지라 함은 사용자가 API 요청을 얼마나 보내는 지와 같은 의미이다. 사용자가 1초당 평균적으로 얼마나 요청을 보내는 지를 측정하거나 예상해야 한다.
      → 사용자가 평균적으로 1초당 100개의 메일을 보낸다고 가정하자.
       
  1. 처리가 지연되지 않는 선에서 파티션 개수 계산하기
    1. 처리가 지연되지 않으려면 프로듀서에서 들어오는 메시지의 수보다 더 빨리 처리할 수 있어야 한다. 그리고 평균 메시지량이 어느 정도 초과할 것도 예상해서 계산해야 한다.
      → 평균 메시지량이 어느 정도 초과할 것을 예상해서 1초당 120개 정도를 처리할 수 있게 만드려면, 아래 공식에 의해 적정 파티션 수는 400개라는 걸 알 수 있다.
      프로듀서가 보내는 메시지량 ≤ 하나의 쓰레드가 처리하는 메시지량 x 파티션 수
      120 = 0.3 x 400
       
 
👨🏻‍🏫
위 과정을 거쳐서 적정 파티션 수를 결정하면 된다. 복잡해보이지만 몇 번만 이 과정을 경험해보면 생각보다 어렵지 않게 적정 파티션 수를 계산할 수 있을 것이다.
 
author
JSCODE 박재성
category
Kafka
createdAt
Dec 6, 2025
series
실전에서 바로 써먹는 Kafka 입문
slug
type
series-footer
updatedAt
Dec 6, 2025 05:39 AM
📎
이 글은 실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편) 강의의 수업 자료 중 일부입니다.