性能问题:Kafka Streams中有时会出现延迟峰值

问题描述 投票:0回答:1

我在Kafka Streaming中进行性能测试。我用Transformer创建了一个简单的Streams API。

  // Stream data from input topic
  builder.stream(Serdes.String(), Serdes.String(), inTopic)
         // convert csv data to avro
         .transformValues(new TransformSupplier())
         // post converted data to output topic
         .to(Serdes.String(), Serdes.ByteArray(), outTopic);

我使用inTopic有10个分区和outTopic有1个分区。我看到延迟很好,大约4-6毫秒。但是,我有时会面临潜伏期的突然飙升,甚至达到~60 - 1000毫秒。然后几秒后,它逐渐下降延迟到4-6毫秒。这导致我整个实验的平均延迟为~67 ms。

突然飙升的原因是什么?如果有的话,建议我一些性能调整参数。

注意:我仅提供了默认的StreamsConfig。

java performance apache-kafka apache-kafka-streams
1个回答
1
投票

产生一定量的消息后,应将数据刷新到磁盘。

这可能会导致您观察到的现象。

请参考kafka配置的“log.flush.interval.messages”:Link

在prod之后,我不建议你改变这个属性来改进。你应该改变你的系统配置:

/proc/sys/vm/dirty_background_ratio
/proc/sys/vm/dirty_ratio

为了提高自己的msgs flush的效率

© www.soinside.com 2019 - 2024. All rights reserved.