Kafka 压测报告

380 阅读3分钟

测试环境

3台阿里云ECS,每台ECS部署单个节点,3台Broker

机器配置

  • 系统 :CentOS 7.6 64位
  • CPU :4核
  • 内存 :8GB
  • 磁盘 :500GB 云SSD
  • Java :OpenJDK Runtime Environment (build 1.8.0_212-b04)
  • Kafka :2.12-2.0.0

测试数据一览

batch.size(Byte)buffer.memory(Byte)record.size(Byte)TPSIOPS(MB/s)avg.latency(ms)max.latency(ms)50th latency(ms)95th latency(ms)99th latency(ms)99.9th latency(ms)
1638433554432100302005.315328.8798.041335830124012971329
1638433554432200174137.150433.21867.441181921110811411165
163843355443250072406.0531534.53885.82090886159319202052
1638433554432100037120.9027835.4872.442581661228024822555
1638433554432200017908.3094634.16876.731506911121414331502
163843355443239069412.11904435.06854.831779972152716481755
1638467108864100297743.107228.391521.6420881796197820042039
1638467108864200168588.576432.161726.9324541780215824112448
163846710886450075266.0655435.891687.8324661823226923682416
1638467108864100037109.0560935.391733.5937681851325134053750
1638467108864200018557.0071335.391664.4720611761201020492058
163846710886439069252.74806634.471708.5831611665284129833139
3276833554432100636083.759560.6667.6248630253354444
3276833554432200335363.399863.97462.281440297126213511414
3276833554432500140394.22766.95450.310104318669301004
3276833554432100072127.1746368.79447.0510434798419131019
3276833554432200036563.8734369.74444.371855236123414411795
3276833554432390617221.1889564.15462.8107240683310081065
3276867108864100635428.978160.657.6882928214367581
3276867108864200328757.035462.71936.462382978207922012288
3276867108864500133757.791463.78929.351975930178619281958
3276867108864100069072.2219265.87929.22500863183621382455
3276867108864200035931.1559168.53900.592602731222724412550
3276867108864390617583.3450665.5900.11329996118912571309

压测结果

  1. batch-size 参数对TPS影响非常大,提升一倍后TPS也相应提升一倍
  2. 消息大小同样非常影响TPS,消息体越大,TPS越低
  3. buffer.memory越大,平均发送延迟也相应增大
  4. 默认client配置(不压缩,acks=all)下100B大小的消息体,集群写入TPS约为30W