apache-kafka - Kafka kafka-producer-perf-test.sh NetworkException 在收到响应之前服务器断开连接
问题描述
我正在尝试在我们的 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
产生性能测试命令:
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 与上述性能错误。
但即使是 1000 条消息/秒,我也会收到错误消息。
需要建议来了解问题并修复上述错误?
我还有另一个非常令人不安的观察。
如果我在不同的主机上使用相同的配置启动 2 个 kafka-producer-perf-test.sh,错误就会消失。如果我取消 1 kafka-producer-perf-test.sh,那么一段时间后,上述错误开始重新出现。
解决方案
推荐阅读
- java - Java不会对抽象类的arraylist进行排序
- javascript - Json:打印某个键的值
- cassandra - 更新数据的 cassandra 压缩策略
- html - 锚到 div id 隐藏元素标题
- sql - 如何在 SQL Server 中查找非索引列的列使用统计信息?
- apache - 在 Debian Jessie i686 上安装 Varnish 4.1
- java - 在反序列化期间强制 Jackson/Gson 在属性不存在时抛出异常
- powershell - PowerShell 输出差异
- ruby-on-rails - ActiveAdmin:模型具有超过 1 个新的和编辑表单页面以及每个页面的收集操作
- javascript - 在页面中的所有现有 javascript 之前动态运行 javascript