Programming/Open Source
[Kafka] Kafka 구성 시 하드웨어 사양 참고
Allg
2021. 5. 15. 17:15
고려사항
- 디스크 처리량과 용량
- 메모리
- 네트워크
- CPU
디스크 처리량
- Producer 성능에는 브로커 디스크의 처리량(throuthput)이 가장 큰 영향을 줌
- 메시지 생성 시 서버의 로컬 스토리지에 저장되고, 메시지가 커밋되었다는 것을 최소한 한 브로커가 확인해줄 때까지 Producer 는 대기
- 따라서 디스크에 빨리 쓸수록 Producer 대기시간 감소
메모리
- Consumer가 읽는 파티션의 메시지는 시스템 메모리의 페이지 캐시에 최적화되어 저장
- 따라서 브로커가 디스크로부터 메시지를 다시 읽어야 하는 것보다 더 빨리 처리될 수 있음
- 페이지 캐시로 사용되는 메모리가 많을수록 Consumer 성능 증가
- 서버에 다른 애플리케이션과 함께 실행하면 페이지 캐시를 공유하게 되어 Cosumer 성능 저하되므로 권장하지 않음
네트워크
- 네트워크 처리량(network throughput)은 카프카가 처리할 수 있는 통신 트래픽의 최대량을 나타냄
참고
- 카프카 브로커는 요청을 처리하기 위해서 CPU를 많이 사용 → 카프카 모니터링 시 CPU 사용을 추적 관리하는 것이 중요!
- 카프카에서는 디스크가 가장 중요한 서브 시스템
- 모든 메시지는 디스크에 저장되므로 카프카의 성능은 디스크의 성능에 의해 좌우
- 따라서 디스크 공간과 inode 모두의 사용을 모니터링하는 것이 중요
- 카프카 데이터가 저장되는 디스크의 경우에는 초당 읽기 & 쓰기, 일기 & 쓰기 큐의 평균 크기, 평균 대기 시간, 디스크의 사용률(%)을 모니터링
- 브로커들의 네트워크 사용 모니터링 → 인바운드와 아웃바운드 네트워크 트래팩의 처리량 확인