几个月前,我们在较低的环境中升级到了更新版本的 EKS。生产环境尚未升级。自从进行升级以来,我们观察到一些 Kafka 生产者在较低环境中的性能下降。我们在生产环境中没有看到任何此类性能下降,并且在此期间我们已经向生产环境发布了多个新代码版本。因此,我们确信问题与我们的代码无关,而是与 Kafka 或 Istio 的配置问题有关。
我们有 32 个 Pod,每个 Pod 有 4 个 Kafka 生产者,每个都写入 Kafka 中的一个唯一分区。Kafka 共有 128 个分区。在生产中,我们让所有 128 个生产者以大致相同的速率向 Kafka 写入数据,直到他们几乎同时完成。在较低的环境中,我们看到一些生产者的写入速度与我们在生产中看到的相似,但其他生产者,包括来自同一 pod 的一些生产者,写入速度要低得多。
这是显示生产速率的图表,所有生产者每秒写入 10K 到 15K:
这是来自我们较低环境的图表,显示一些生产者每秒写入超过 10K,但许多生产者的写入速度也低至每秒 5K:
我已经比较了 prod 和我们正在运行这些测试的性能环境之间的 kafka 配置,我可以看到在定义侦听器的方式上有些细微差别,但是我对 kafka 或 kubernetes 的了解还不够,无法知道它是否可能是问题的原因。
任何帮助或想法将不胜感激。
这是我们生产环境中的 srimzi 运算符:
https://privnote.com/aVeLrwBF#nZatzZTjT
而且,这是我们性能环境中的 srimzi 运算符...
https://privnote.com/UH4ReWkb#JSvuD27nF
这是我们来自生产的kafka yml:
https://privnote.com/cB5w5w4R#moAC9BvZx
这是来自我们的性能环境:
https://privnote.com/bs67Ld7d#zsZ6JIuiY
最后,这是我们生产环境中的 kafka configmap:
https://privnote.com/JErf2a99#XWThgvENY
这是来自性能环境: