다양한 하둡에코 소프트웨어 성능을 검증하려는 목적으로 성능 테스트 환경을 구성해보았습니다. ELK, JMeter를 활용해 구성했고 Kafka에 적용해 보았습니다.
프로젝트에서 요구되는 성능요건을 고려해 다양한 옵션을 조정해 시뮬레이션 해볼수 있습니다.
처음 적용한 뒤 2년 정도가 지났지만, kafka 만이 아니다 다른 Hadoop eco 및 Custom Solution에도 유용하게 활용 가능하겠습니다.
성능 검증 환경구성 Kibana Dashboard 구성
• 로그 분석 용도로 사용 가능함. 실시간 성능 정보 수집 및 Historical 정보도 Time Window로 조회 가능
6.
Kafka 성능 요인Partition의 수
• Partition 2개의 경우 : 대략 35% 정도 상승 (Partition 1에서 성능 대비)
• Partition 3개의 경우 : 대략 100% 정도 상승 (Partition 1에서 성능 대비)
=> 파티션의 개수 증가가 성능과 비례하나 네트워크 병목 및 Kafka 내 처리 비용을 고려하여 시스템 규모에 적합한 파티션
개수 확인 필요
72,000 Msg/s
4.6 Mbyte/s
110,000 Msg/s
7.5 Mbyte/s
Partition 2
Partition 3
7.
Kafka 성능 요인ACK 수준
• Ack 수준을 0으로 하는 경우 수준 1일 경우 대비하여 60% 정도 상승
=> 데이터 유실 허용 수준에 따라 성능이 부족할 경우 ACK 수준 0 고려할 수도 있음
120,000 Msg/s
7.8 Mbyte/s
Partition 2
8.
Kafka 성능 요인압축수준
• Gzip 압축을 하는 경우 압축을 하지 않는 경우에 비해 성능은 11% 정도 저하
• 하지만 네트워크 사용량은 기존 대비 60% 정도 줄어듦
=> 네트워크 병목이 발생하는 경우 압축 수준을 고려할 필요 있음
64,000 Msg/s
1.2 Mbyte/s
Partition 2에서 ack 1,
compression gzip