Big Data/Kafka
[kafka] kafka-producer-perf-test
devidea
2020. 12. 18. 11:43
오랜만에 글을 작성한다. 그래서 간단한 내용을 하나 소개한다.
테스트를 위해서 카프카에 임의의 트래픽을 발생할 수 있는데 kafka-producer-perf-test.sh command를 사용하면 된다. 이것을 살펴보자.
kafka-producer-perf-test.sh을 파라미터 없이 실행하면 옵션 항목을 볼 수 있다.
주요한 옵션만 살펴보자.
파라미터 | 설명 |
--topoic | 데이터를 보낼 토픽 |
--num-records | 전송할 메세지의 개수 |
--throughput | 대략적인 messages/sec으로 처리량을 조절한다. -1을 설정할 경우 처리량 조정없이 계속 보낸다. |
--producer-props | 프로듀서 설정. 필수 설정인 bootstrap.servers 등을 넣을 수 있다. |
--record-size | 메세지의 사이즈 (bytes) |
--print-metric | 테스트 종료 후 metric을 보여준다. |
위 옵션을 토대로 다음과 같이 트래픽을 조정해서 발송했다.
메세지 숫자는 500개 처리량을 10개로 주어서 초당 10개만 발송한다. 그리고 메세지 사이즈는 1024byte 이다.
./kafka-producer-perf-test.sh --num-records 500 --throughput 10 --record-size 1024 \
--print-metric --topic test --producer-props bootstrap.servers=localhost:9092
실행하면 중간에 다음과 같이 처리된 양을 대략적으로 표시해준다.
52 records sent, 10.3 records/sec (0.01 MB/sec), 6.5 ms avg latency, 201.0 ms max latency.
50 records sent, 9.9 records/sec (0.01 MB/sec), 2.3 ms avg latency, 5.0 ms max latency.
51 records sent, 10.1 records/sec (0.01 MB/sec), 2.1 ms avg latency, 3.0 ms max latency.
51 records sent, 10.1 records/sec (0.01 MB/sec), 1.9 ms avg latency, 3.0 ms max latency.
50 records sent, 9.9 records/sec (0.01 MB/sec), 2.0 ms avg latency, 3.0 ms max latency.
50 records sent, 9.9 records/sec (0.01 MB/sec), 1.8 ms avg latency, 3.0 ms max latency.
51 records sent, 10.1 records/sec (0.01 MB/sec), 1.9 ms avg latency, 3.0 ms max latency.
50 records sent, 9.9 records/sec (0.01 MB/sec), 1.8 ms avg latency, 3.0 ms max latency.
51 records sent, 10.1 records/sec (0.01 MB/sec), 1.7 ms avg latency, 2.0 ms max latency.
500 records sent, 10.006604 records/sec (0.01 MB/sec), 2.40 ms avg latency, 201.00 ms max latency, 2 ms 50th, 3 ms 95th, 4 ms 99th, 201 ms 99.9th.
몇 건의 메세지를 보냈는지 그리고 보냈을 때의 처리량이 얼마인지 대략적으로 확인할 수 있다.
임의의 데이터를 보내는 방식으로 하기 때문에 특정 포맷의 메세지는 보낼 수 없지만 순수하게 카프카의 처리량을 테스트할 때 유용할 듯 하다.
반응형