[ 
https://issues.apache.org/jira/browse/KAFKA-16779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lin Siyuan updated KAFKA-16779:
-------------------------------
    Description: 
在将所有主题设置为保留四天或更长时间(345600000毫秒)的 Kafka 集群中,大多数代理似乎保留了六天的数据。

即使对于具有高吞吐量(500MB/s,50k 消息/秒)的主题也是如此,因此会定期滚动新的日志段。我们通过磁盘使用情况统计信息和从 Kafka 
请求最早的可用消息来观察到这种出乎意料的高保留率。

其中一些代理崩溃并显示“mmap 失败”错误(已附)。当这些经纪人再次启动时,他们又回到了预期的四天保留期。

手动重新启动代理似乎也会导致它们恢复到四天的保留期。降级和提升代理仅对代理上托管的一小部分数据产生此影响。

这些主机有 ~170GiB 的可用内存。在他们报告此错误之前或之后,我们没有看到系统或 JVM 堆内存受到压力的迹象。提交的内存似乎在 10% 
左右,因此这似乎不是过度提交问题。

这个 Kafka 集群在两周前(4 月 29 日)升级到了 Kafka 3.7。在升级之前,它运行在 Kafka 2.4 上。

我们上次在 5 月 7 日减少了 ops 的保留期,之后我们将保留期恢复到默认的 4 
天。这是自升级以来,我们第二次暂时减少和恢复保留期。这个问题在我们之前这样做时没有表现出来,也没有在我们的其他 Kafka 3.7 集群上表现出来。

我们在 AWS [d3en.12xlarge|https://instances.vantage.sh/aws/ec2/d3en.12xlarge] 
主机上运行。我们有 23 个代理,每个代理有 24 个磁盘。我们在 JBOD 配置中运行(即未突袭)。

由于此集群是从 Kafka 2.4 升级而来的,并且由于我们使用的是 JBOD,因此我们仍然使用 Zookeeper。

附加了示例代理日志。05-12 和 05-14 日志来自不同的主机。如果我能提供任何进一步的信息,请告诉我。

  was:
In a Kafka cluster with all topics set to four days of retention or longer 
(345600000ms), most brokers seem to be retaining six days of data.

This is true even for topics which have high throughput (500MB/s, 50k msgs/s) 
and thus are regularly rolling new log segments. We observe this unexpectedly 
high retention both via disk usage statistics and by requesting the oldest 
available messages from Kafka.

Some of these brokers crashed with an 'mmap failed' error (attached). When 
those brokers started up again, they returned to the expected four days of 
retention.

Manually restarting brokers also seems to cause them to return to four days of 
retention. Demoting and promoting brokers only has this effect on a small part 
of the data hosted on a broker.

These hosts had ~170GiB of free memory available. We saw no signs of pressure 
on either system or JVM heap memory before or after they reported this error. 
Committed memory seems to be around 10%, so this doesn't seem to be an 
overcommit issue.

This Kafka cluster was upgraded to Kafka 3.7 two weeks ago (April 29th). Prior 
to the upgrade, it was running on Kafka 2.4.

We last reduced retention for ops on May 7th, after which we restored retention 
to our default of four days. This was the second time we've temporarily reduced 
and restored retention since the upgrade. This problem did not manifest the 
previous time we did so, nor did it manifest on our other Kafka 3.7 clusters.

We are running on AWS 
[d3en.12xlarge|https://instances.vantage.sh/aws/ec2/d3en.12xlarge] hosts. We 
have 23 brokers, each with 24 disks. We're running in a JBOD configuration 
(i.e. unraided).

Since this cluster was upgraded from Kafka 2.4 and since we're using JBOD, 
we're still using Zookeeper.

Sample broker logs are attached. The 05-12 and 05-14 logs are from separate 
hosts. Please let me know if I can provide any further information.


> Kafka retains logs past specified retention
> -------------------------------------------
>
>                 Key: KAFKA-16779
>                 URL: https://issues.apache.org/jira/browse/KAFKA-16779
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 3.7.0
>            Reporter: Nicholas Feinberg
>            Priority: Major
>              Labels: expiration, retention
>         Attachments: OOM.txt, kafka-20240512.log.gz, kafka-20240514.log.gz, 
> kafka-ooms.png, server.log.2024-05-12.gz, server.log.2024-05-14.gz, 
> state-change.log.2024-05-12.gz, state-change.log.2024-05-14.gz
>
>
> 在将所有主题设置为保留四天或更长时间(345600000毫秒)的 Kafka 集群中,大多数代理似乎保留了六天的数据。
> 即使对于具有高吞吐量(500MB/s,50k 消息/秒)的主题也是如此,因此会定期滚动新的日志段。我们通过磁盘使用情况统计信息和从 Kafka 
> 请求最早的可用消息来观察到这种出乎意料的高保留率。
> 其中一些代理崩溃并显示“mmap 失败”错误(已附)。当这些经纪人再次启动时,他们又回到了预期的四天保留期。
> 手动重新启动代理似乎也会导致它们恢复到四天的保留期。降级和提升代理仅对代理上托管的一小部分数据产生此影响。
> 这些主机有 ~170GiB 的可用内存。在他们报告此错误之前或之后,我们没有看到系统或 JVM 堆内存受到压力的迹象。提交的内存似乎在 10% 
> 左右,因此这似乎不是过度提交问题。
> 这个 Kafka 集群在两周前(4 月 29 日)升级到了 Kafka 3.7。在升级之前,它运行在 Kafka 2.4 上。
> 我们上次在 5 月 7 日减少了 ops 的保留期,之后我们将保留期恢复到默认的 4 
> 天。这是自升级以来,我们第二次暂时减少和恢复保留期。这个问题在我们之前这样做时没有表现出来,也没有在我们的其他 Kafka 3.7 集群上表现出来。
> 我们在 AWS [d3en.12xlarge|https://instances.vantage.sh/aws/ec2/d3en.12xlarge] 
> 主机上运行。我们有 23 个代理,每个代理有 24 个磁盘。我们在 JBOD 配置中运行(即未突袭)。
> 由于此集群是从 Kafka 2.4 升级而来的,并且由于我们使用的是 JBOD,因此我们仍然使用 Zookeeper。
> 附加了示例代理日志。05-12 和 05-14 日志来自不同的主机。如果我能提供任何进一步的信息,请告诉我。



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to