NVMe · NUMA · PageCache · 네트워크 IRQ · 브로커 배치 전략
Kafka를 운영하다 보면 “왜 어떤 클러스터는 똑같은 설정인데도 훨씬 빠르게 동작할까?”라는 질문을 하게 된다.
그 답은 대부분 하드웨어 구조에 있다.
Kafka는 결국 “디스크 → 네트워크 → 메모리 → CPU 스레드” 위에서 돌아가는 시스템이며, 이 하드웨어 경로가 조금만 어긋나도 성능이 반 토막 난다.
이번 편에서는 Kafka가 하드웨어에서 진짜 어떤 영향을 받는지를 통째로 정리한다.
이 시리즈 전체에서도 가장 실무적인 내용이다.
Kafka의 가장 중요한 병목은 결국 디스크 I/O다.
Kafka는 데이터를 파일로 append하고, segment 단위로 flush하며, page cache 위에서 읽고, replica sync를 위해 다시 네트워크로 보내야 한다.
그래서 Kafka의 디스크 성능을 구성하는 세 가지 요소가 중요해진다.
IOPS는 디스크가 초당 몇 개의 IO 작업을 처리할 수 있는지를 나타낸다.
NVMe는 SATA SSD 대비 보통 10배 이상, HDD 대비 수십~수백 배 높은 IOPS를 가진다.
IOPS는 특히 다음 상황에서 중요하다: