Blog chevron_right Java

从 GC 暂停到可预测的 SLA:JVM 影响 Kafka 性能的秘密

From GC Pauses to Predictable SLAs: JVM Secrets for Kafka Performance

总结

Kafka 调优常常像是在盲目摸索。JVM 会显著影响 Kafka 的性能,因为 Kafka 代理和客户端应用程序都是基于 Java 构建并在 JVM 中运行的。JVM 直接控制 Kafka 如何大规模执行工作负载 

在本文中,您将了解: 

  • 调整分区、副本提取大小和 I/O 线程带来的收益微乎其微 
  • ITAM 专业人员必须仔细考虑是否准备好升级到新的 LTS 版本的 Java 
  • Azul Platform Prime 的运行速度比原生 OpenJDK 快 20-50%,而且无需任何代码更改。 

您希望您的应用程序快速运行。性能。可靠性。确定性。但 Kafka 调优常常像是在盲目摸索。调整分区、副本提取大小和 I/O 线程带来的收益微乎其微。在大规模环境下找到“正确”的配置似乎是不可能的… 而且令人沮丧。 

Google Cloud 战略云工程师 Abhi Sharma 和数据架构师 Blake DuBois 在 2025 年的文章中指出,“虽然 Apache Kafka 提供了强大的功能,但实现最佳性能并非自动实现,”该文章列出了针对 Kafka 部署对托管服务进行基准测试的步骤。运行基准测试并进行调优以提升性能,是一项不精确且耗时的工作。  

此外… 如果答案根本不在 Kafka 中怎么办? 

JVM 如何影响 Kafka 的性能 

JVM 会显著影响 Kafka 的性能,因为 Kafka 代理和客户端应用程序都是基于 Java 构建并在 JVM 中运行的。JVM 直接控制 Kafka 如何大规模执行工作负载。有几个关键方面需要考虑: 

  • 垃圾收集 (GC) 暂停:Kafka 依靠 JVM 的垃圾收集器来管理内存。较长的 GC 时间可能导致全局暂停,应用程序线程会暂时停止,从而降低吞吐量并增加延迟。对于 Kafka 等低延迟应用程序,调整 JVM 堆大小并选择合适的垃圾收集器至关重要。 
  • JVM 选择:不同的 JVM 实现(例如 OpenJDK 和 Azul Platform Prime 等专用 JVM)提供不同的性能特征。专用 JVM 通常专注于减少 GC 暂停并提高整体执行速度,从而提高 Kafka 吞吐量并降低延迟,使其更可预测。 
  • 内存管理:JVM 的内存管理直接影响 Kafka 的效率。合理的堆大小(同时考虑初始堆大小和最大堆大小)对于防止频繁或过长的 GC 暂停非常重要。 
  • 编译器优化:JVM 的即时编译器执行运行时优化,可以显著提升 Kafka 的执行速度。专用 JVM 通常包含高级编译器优化,以进一步提升性能。 
  • 资源利用率:JVM 的效率会影响 CPU 和内存资源利用率。经过精心调优的 JVM 可以用更少的资源实现更高的吞吐量,从而降低基础设施成本。 

Kafka 与 Azul 配合使用时性能更佳

Azul Platform Prime 包含多项免费功能,可提升应用程序性能。 

  • Falcon 编译器可确保 Java 开发人员和基于 Java 的企业能够从服务器硬件中获得最大性能。 

Azul 性能工程实验室已对 Kafka 的性能进行了细致的标定。 

  • 客户反馈说,开箱即用的 Kafka 搭配 Azul Platform Prime 的 Falcon 编译器后,原始速度提升了 20%。 
  • Azul 将吞吐量和响应能力提升了 45%,并且无需修改任何一行代码即可消除垃圾收集暂停。 
  • Platform Prime 客户可以使用更少的云实例、更少的服务器和更少的性能调优来满足 Kafka SLA 目标 

加入我们的免费网络研讨会,了解有关 Kafka 的更多信息 

参加由 Azul 高级产品经理 Jiří Holuša 和产品管理副总裁 Jonhn Ciccarelli 主讲的在线网络研讨会:How to Boost Kafka Performance in One Day(如何在一天之内提升 Kafka 性能)。他们将展示 JVM 如何直接影响 Kafka 的效率,以及合适的 JVM 如何带来明显改进。在本次会议中,他们将讨论以下内容: 

  • 火焰图和汇编代码深入分析,揭示性能提升的来源 
  • 在 Azul Platform Prime 上运行 Kakfa 如何在处理相同负载的情况下将延迟降低多达 40% 
  • 关于如何通过合适的 JVM 提升集群性能以改善 SLA 并降低基础设施支出的切实可行的见解。 
Teal CTA Band

充分利用 Kafka