11장. Kafka CPU 선택 가이드 (KRaft 기반)
Kafka를 KRaft 모드(Kafka Raft Metadata Mode)로 운영하는 경우, 브로커, 컨트롤러, 또는 브로커+컨트롤러 겸용 노드 각각의 역할에 따라 CPU 성능 요구가 달라집니다. 이 장에서는 Kafka에서 CPU가 실제로 사용되는 지점부터 설명하고, CPU를 선택할 때 고려할 요소들을 정리해 설명합니다.
11.1 Kafka에서 CPU가 사용되는 영역
Kafka는 디스크 기반 시스템이지만, 다음과 같은 작업에서 CPU 리소스를 적극적으로 사용합니다:
| 사용 영역 | 설명 |
|---|---|
| 메시지 압축/해제 | gzip, snappy, lz4 등의 압축 알고리즘 처리 시 CPU 소모 |
| 메시지 인코딩/디코딩 | JSON, Avro, Protobuf 등의 포맷 처리 |
| TLS 암호화/복호화 | 암호화된 트래픽 송수신 시 연산 발생 |
| 네트워크 처리 | 브로커의 I/O 스레드 및 데이터 송수신 처리 |
| 메타데이터 처리 | 컨트롤러가 클러스터 상태 및 리더 관리 수행 |
| 응답 속도 중심 작업 | 클라이언트 요청에 빠르게 응답하기 위해 단일 스레드 처리 성능 중요 |
특히 KRaft 모드에서는 ZooKeeper가 제거되며, 컨트롤러 노드가 모든 메타데이터를 직접 처리하기 때문에 CPU 중요성이 더 높아졌습니다.
11.2 CPU 성능 구성 요소
Kafka에서 CPU의 성능은 다음 세 가지 요소로 판단할 수 있습니다:
| 항목 | 설명 |
|---|---|
| 클럭 속도 (GHz) | 초당 처리 가능한 명령 수. 클럭이 높을수록 단일 처리 속도 빠름 |
| 코어 수 | 동시에 여러 작업을 처리할 수 있는 능력. 병렬 처리에 유리함 |
| IPC (Instructions Per Cycle) | 클럭 1회 주기당 처리할 수 있는 명령어 수. CPU 내부 설계에 따라 다름 |
CPU 성능 ≈ 클럭 속도 × IPC × 코어 수
※ 실제 성능은 캐시, 메모리 구조, 소프트웨어 최적화 등에 따라 달라질 수 있습니다.
11.3 IPC란 무엇인가?
IPC(Instructions Per Cycle)는 CPU가 한 클럭 주기 동안 처리할 수 있는 명령어 수를 뜻합니다. CPU 내부 설계(파이프라인, 캐시, 분기 예측 등)에 따라 IPC가 달라지며, 같은 클럭이라도 IPC가 높으면 더 빠른 성능을 발휘합니다.
- IPC는 세대가 높을수록 개선되는 경향이 있습니다.
- 예: Intel Skylake → Alder Lake → Raptor Lake
- 예: AMD Zen → Zen 2 → Zen 3 → Zen 4
➡️ 같은 클럭과 코어 수라도 세대가 다르면 성능 차이가 큽니다.
11.4 CPU 성능 확인 방법
IPC는 CPU 제조사에서 명확하게 수치를 제공하지 않기 때문에, 실제 성능은 벤치마크 점수를 참고하는 것이 좋습니다.
벤치마크 확인 사이트
이 사이트들에서는 CPU 모델명을 입력하면 상대적인 점수와 싱글/멀티 코어 성능을 확인할 수 있습니다.
11.5 AWS 인스턴스에서의 CPU 선택 참고사항
Kafka를 AWS EC2에서 운영할 경우, 인스턴스 유형에 따라 탑재된 CPU 종류가 다르므로 주의가 필요합니다.
- 같은 vCPU 수여도, 인스턴스에 따라 실제 성능 차이가 클 수 있습니다.
- 예를 들어,
c6i와c5는 모두 8 vCPU로 구성할 수 있지만, 장착된 CPU 아키텍처나 세대가 다르면 IPC와 클럭이 달라 실제 처리 성능이 다릅니다. - 또한, 인텔과 AMD 계열, Graviton ARM 계열 간에도 성능 특성이 다릅니다.
확인 팁
- AWS 공식 EC2 인스턴스 문서에서 각 인스턴스에 어떤 CPU가 장착되어 있는지 확인할 수 있습니다.
- EC2 콘솔에서 “인스턴스 유형“을 선택하면 탑재된 CPU 모델을 직접 확인할 수 있습니다.
참고: vCPU 수가 많다고 해서 반드시 성능이 선형적으로 향상되는 것은 아니며, 클럭과 IPC, 워크로드 특성을 함께 고려해야 합니다.
11.6 노드 유형별 CPU 선택 기준
브로커 전용 노드
- 메시지 전송/수신, 압축, 인코딩, 디스크 처리 집중
- 네트워크와 병렬 처리 중요
- 권장 사양: 8코어 이상, 3.0GHz 이상, 최신 세대 CPU
컨트롤러 전용 노드 (KRaft)
- 클러스터 메타데이터 관리, 리더 선출 등 수행
- 빠른 응답과 안정적 동작이 중요
- 권장 사양: 4~8코어, 3.0GHz 이상, IPC가 높은 최신 세대 CPU
브로커 + 컨트롤러 겸용 노드
- 위 두 역할을 모두 수행함
- 병렬 처리와 단일 작업 응답 모두 필요
- 권장 사양: 8~16코어, 3.2GHz 이상, 멀티/싱글 스레드 모두 성능 우수한 모델
11.7 CPU 선택 요약
| 노드 유형 | 권장 사양 |
|---|---|
| 브로커 전용 | 8코어 이상, 3.0GHz 이상, 최신 세대 CPU |
| 컨트롤러 전용 | 4~8코어, 3.0GHz 이상, IPC 우수 모델 |
| 브로커 + 컨트롤러 겸용 | 8~16코어, 고클럭 + 고IPC CPU |
클럭 속도, IPC, 코어 수를 균형 있게 고려하고, 세대별 IPC 차이를 포함한 벤치마크 결과를 확인하면 효율적인 CPU 선택이 가능합니다.