without haste but without rest

카프카 성능 테스트 본문

Data Engineering & DataOps/Kafka

카프카 성능 테스트

JinungKim 2021. 6. 7. 13:37

    카프카는 성능 테스트를 기본적으로 제공하고 있다. 아래 과정으로 현재 구축한 카프카 클러스터의 성능이 어느정도 나오는지 확인할 수 있다. 해당 쉘 파일은 카프카를 설치한 하위 디렉토리 bin에 있다. 


0. create topic

    앞서 구축한 테스트용 카프카 클러스터의 브로커는 3대이므로 복제 개수는 3개이며 파티션도 3개로 토픽을 생성했다. (브로커 개수의 2배인 파티션 6개로 증가시켰을 때 근소하게 성능 향상이 있었다. 12개는 6개와 성능 차이가 없었다..이 부분은 더 자세히 파악하고 추가할 예정이다.) 토픽 이름은 간단하게 bmt로 설정

bin/kafka-topics.sh --create --bootstrap-server \
broker-server1:9092,broker-server2:9092,broker-server3:9092 \
--replication-factor 3 \
--partitions 3 \
--topic bmt

1. producer

bin/kafka-producer-perf-test.sh \
--topic bmt \
--throughput -1 \
--num-records 10000000 \
--record-size 2000 \
--producer-props ack=1 bootstrap.servers=broker-server1:9092,broker-server2:9092,broker-server3:9092

   topic - 전송할 토픽 이름

   throughput - 최대 메세지 처리량으로 -1은 가능한 빠르게 데이터를 보냄을 의미한다

   num-records - 메세지 개수

   record-size - 메세지 하나당 크기 (데이터 사이즈)로 단위는 byte 

   producer-props - 프로듀서 설정, ack는 카프카의 ack옵션, 구축한 카프카 클러스터의 브로커 주소들을 적어준다.

 

   위 명령어로 프로듀서 테스트를 할 경우 데이터 크기가 2000kb인 메세지를 10,000,000 개 전송하므로 약 186기가 정도를 전송한다. 실행 시 초 당 데이터 전송 속도 및 지연율에 대한 정보가 출력된다.

 

   ack=1은 기본 옵션으로 브로커가 메세지를 받았는지 까지만 확인한다. 옵션은 0, 1, -1(all) 있다. 


2. consumer

bin/kafka-consumer-perf-test.sh \
--topic bmt \
--broker-list broker-server1:9092,broker-server2:9092,broker-server3:9092, \
--messages 10000000 \

    topic - 메세지를 읽어 올 토픽

    broker-list - 카프카 브로커 클러스터

    messages - 읽어 올 메세지 개수

 

    위 명령어 실행 시 초당 데이터 read 속도와 지연율 등에 관한 정보가 출력된다.

 


Comments