Я пытаюсь выполнить тест производительности в нашей среде 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 Test:
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 Я наблюдаю за показателями kafka, используя tsdb и grafana.Я знаю, что производительность дискового ввода-вывода плохая [ожидание диска (1,5 секунды), размер очереди ввода-вывода и показатели использования диска высоки (60-75%)], но я не вижу проблем в журналах kafka, которые могут связать медленный ввод-вывод диска свышеупомянутые ошибки perf.
Но я получаю ошибку даже для 1000 сообщений / сек.
Нужны предложения, чтобы разобраться в проблеме и исправить вышеуказанные ошибки?
У меня есть другаяочень тревожное наблюдение.
Ошибки исчезают, если я запускаю 2 kafka-producer-perf-test.sh с одинаковыми конфигами на разных хостах.Если я отменю 1 kafka-producer-perf-test.sh, то через какое-то время вышеуказанные ошибки начнут появляться снова.