为什么文件句柄上的锯齿曲线和我们的 kafka 集群上的 cpu 使用率?

Why sawtooth curve on file handles and cpu usage on our kafka cluster?

我们的 Kafka 集群上有一个有趣的 文件句柄 cpu 使用行为,我无法解释 :)我不确定需要哪些信息才能找出原因,所以我将列出一些(如果您遗漏了任何信息,请告诉我):

此外,我们还有 4 个压缩的主题(1 个分区),其中 segment_msretention_ms 设置为 1 分钟。此主题用作缓存以提供最新值。

这是显示锯齿行为的指标:

文件句柄 spices 大约有 7 天长,似乎也与 cpu 用法有关。默认 segment_ms(我们将其用于我们的大部分主题)是 7 天。不确定这是否相关。

知道为什么会这样吗?谢谢!

显然,这种有趣的行为是由我们“压缩”的主题引起的。我们用“删除”替换了几乎所有“压缩”主题,只保留了 4 个真正必需的主题(作为缓存)。现在行为恢复正常(正如您在过去几天看到的那样)。

在 Kafka 中,主题由段组成。一旦最后一个条目消失,一个段只会被“垃圾收集”。如果一个主题被压缩,可能会有单个条目(没有进一步更新)阻止整个段被“垃圾收集”,这会导致许多“打开文件句柄”。使用“删除”段可以更频繁地收集垃圾。