Kafka性能テスト

7533 ワード

コンフィギュレーション


クラスタ構成

  • 3 Node 3ノード;
  • cpu: 40c
  • memory: 256G
  • 帯域幅:4 G
  • JVM構成

    -Xmx30G -Xms30G -XX:MaxPermSize=48m -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35
    

    キーファクタテスト


    Producerテスト


    1とスレッド数の関係(threads)
  • テストスクリプト
  • ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 1 
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 3 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 5 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 7 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 15  --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 20 --hide-header
    
  • 試験結果
  • Threads
    MB/S
    nMsg/S
    1
    81.7960
    20939.7772
    3
    172.1875
    44080.0053
    5
    219.7115
    56246.1331
    7
    252.8478
    64729.0440
    10
    258.6749
    66607801
    15
    283.6163
    72605.0969
    20
    257.4644
    65910.8885
    2とバッチサイズの関係(batch-size)
  • テストスクリプト
  • ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 1000  --threads 10 
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 5000  --threads 10 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --hide-header
    
  • 試験結果
  • Batch-size
    MB/S
    nMsg/S
    1000
    294.6779
    214776.6323
    5000
    282.9386
    72432.2758
    10000
    251.3108
    32167.7872
    3とログサイズの関係(message-size)
  • テストスクリプト
  • ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 1024 --batch-size 10000  --threads 10 
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 8192 --batch-size 10000  --threads 10 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 10240 --batch-size 10000  --threads 10 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 20480 --batch-size 10000  --threads 10 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 40960 --batch-size 10000  --threads 10 --hide-header
    
  • 試験結果
  • Message-size
    MB/S
    nMsg/S
    1024
    209.7428
    214776.6323
    4096
    282.9386
    72432.2758
    8192
    251.3108
    32167.7872
    10240
    233.6218
    23922.8727
    20480
    220.0903
    11268.6214
    4と応答方式の関係(acks)
  • テストスクリプト
  • ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --request-num-acks 0
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --request-num-acks 1 --hide-header
    
  • 試験結果
  • ack
    MB/S
    nMsg/S
    応答しない
    285.8999
    73190.3681
    リーダーレスポンス
    276.9408
    70896.8451
    5と圧縮方式の関係(compression-codec)
  • テストスクリプト
  • ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --compression-codec 0 
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --compression-codec 1 --hide-header
    ./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000  --message-size 4096 --batch-size 10000  --threads 10 --compression-codec 2 --hide-header
    
  • 試験結果
  • compresson-codec
    MB/S
    nMsg/S
    非圧縮
    274.5853
    70293.8282
    Gzip
    267.6981
    68530.7018
    Snappy
    827.5953
    211864.4068
    6 Producer構成の概要
    特定のリソースの場合、ログサイズが4 kb、バッチサイズが5000、15スレッド、Snapy圧縮方式、不確認応答方式の場合、性能が最も優れている.

    Cosumerテスト


    1.スレッド数との関係(threads)
  • テストスクリプト
  • ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  10000  --threads 1
    ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  10000  --threads 3 --hide-header
    ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  10000  --threads 6 --hide-header
    ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  10000  --threads 10 --hide-header
    
  • 試験結果
  • Threads
    MB/S
    nMsg/S
    1
    61.9631
    64973.0362
    3
    70.4807
    73904.3677
    6
    72.2006
    75707.8686
    10
    73.1439
    76696.9193
    2.キャプチャデータ量との関係(fetch-size)
  • テストスクリプト
  • ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  1000  --threads 10
    ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  2000  --threads 6 --hide-header 
    ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  5000  --threads 6  --hide-header
    ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  10000  --threads 6 --hide-header
    ./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size  15000  --threads 6 --hide-header
    
  • 試験結果
  • Fetch-Size
    MB/S
    nMsg/S
    2000
    13.2777
    13922.7289
    5000
    46.4211
    48676.0125
    10000
    75.8128
    79495.4688
    15000
    92.6737
    97175.4341
    3.cosumer構成まとめ
    6-8個のスレッドを使用して、キャプチャサイズは10000程度で、性能は比較的に良いです.