without haste but without rest
카프카 성능 테스트 본문
카프카는 성능 테스트를 기본적으로 제공하고 있다. 아래 과정으로 현재 구축한 카프카 클러스터의 성능이 어느정도 나오는지 확인할 수 있다. 해당 쉘 파일은 카프카를 설치한 하위 디렉토리 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 속도와 지연율 등에 관한 정보가 출력된다.
'Data Engineering & DataOps > Kafka' 카테고리의 다른 글
Kafka 개념과 특징 (0) | 2021.12.10 |
---|---|
M1 confluent-kafka 설치 에러 - fatal error: 'librdkafka/rdkafka.h' file not found (0) | 2021.09.17 |
로컬 환경에서 카프카 클러스터 구축 (0) | 2021.06.07 |
카프카 미러메이커 (0) | 2021.05.24 |
읽어보면 좋은 카프카 자료 (0) | 2021.05.21 |