我正在尝试在我们的kafka环境中执行基准测试。我使用了一些配置,例如request.timeout.ms和max.block.ms,但始终无法避免错误:
org.apache.kafka.common.errors.TimeoutException: The request timed out.
org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received.
org.apache.kafka.common.errors.TimeoutException: Expiring 148 record(s) for benchmark-6-3r-2isr-none-0: 182806 ms has passed since last append
制作Perf测试命令:
nohup sh ~/kafka/kafka_2.11-1.0.0/bin/kafka-producer-perf-test.sh --topic benchmark-6p-3r-2isr-none --num-records 10000000 --record-size 100 --throughput 1000 --print-metrics --producer-props acks=all bootstrap.servers=node1:9092,node2:9092,node3:9092 request.timeout.ms=180000 max.block.ms=180000 buffer.memory=100000000 > ~/kafka/load_test/results/6p-3r-10M-100B-t-1-ackall-rto3m-block2m-bm100m-2 2>&1
群集:3个节点,主题:6个分区,RF = 3,minISR = 2 我正在使用tsdb和grafana监控kafka指标。我知道磁盘IO性能不好[磁盘等待(1.5秒),IO队列大小和磁盘利用率指标很高(60-75%)]但是我没有看到kafka日志中任何可能与慢磁盘有关的问题io对上述perf错误。
但即使是1000条消息/秒,我也会收到错误。
需要建议才能理解问题并解决上述错误?
我还有另一个非常令人不安的观察。
如果我在不同的主机上使用相同的配置启动2 kafka-producer-perf-test.sh,则错误消失。 如果我取消1 kafka-producer-perf-test.sh,那么一段时间后上述错误就会重新出现。