Programming/Open Source

[Kafka] Kafka 구성 시 하드웨어 사양 참고

Allg 2021. 5. 15. 17:15

고려사항

  • 디스크 처리량과 용량
  • 메모리
  • 네트워크
  • CPU

디스크 처리량

  • Producer 성능에는 브로커 디스크의 처리량(throuthput)이 가장 큰 영향을 줌
  • 메시지 생성 시 서버의 로컬 스토리지에 저장되고, 메시지가 커밋되었다는 것을 최소한 한 브로커가 확인해줄 때까지 Producer 는 대기
  • 따라서 디스크에 빨리 쓸수록 Producer 대기시간 감소

 

메모리

  • Consumer가 읽는 파티션의 메시지는 시스템 메모리의 페이지 캐시에 최적화되어 저장
  • 따라서 브로커가 디스크로부터 메시지를 다시 읽어야 하는 것보다 더 빨리 처리될 수 있음
  • 페이지 캐시로 사용되는 메모리가 많을수록 Consumer 성능 증가
  • 서버에 다른 애플리케이션과 함께 실행하면 페이지 캐시를 공유하게 되어 Cosumer 성능 저하되므로 권장하지 않음

 

네트워크

  • 네트워크 처리량(network throughput)은 카프카가 처리할 수 있는 통신 트래픽의 최대량을 나타냄

 

참고

  • 카프카 브로커는 요청을 처리하기 위해서 CPU를 많이 사용 → 카프카 모니터링 시 CPU 사용을 추적 관리하는 것이 중요!
  • 카프카에서는 디스크가 가장 중요한 서브 시스템
  • 모든 메시지는 디스크에 저장되므로 카프카의 성능은 디스크의 성능에 의해 좌우
  • 따라서 디스크 공간과 inode 모두의 사용을 모니터링하는 것이 중요
  • 카프카 데이터가 저장되는 디스크의 경우에는 초당 읽기 & 쓰기, 일기 & 쓰기 큐의 평균 크기, 평균 대기 시간, 디스크의 사용률(%)을 모니터링
  • 브로커들의 네트워크 사용 모니터링 → 인바운드와 아웃바운드 네트워크 트래팩의 처리량 확인