gpt4 book ai didi

apache-kafka - Kafka 代理节点宕机并出现 "Too many open files"错误

转载 作者:行者123 更新时间:2023-12-04 11:14:24 24 4
gpt4 key购买 nike

我们有一个 3 节点的 Kafka 集群部署,共有 35 个主题,每个主题 50 个分区。我们总共配置了replication factor=2 .
我们看到一个非常奇怪的问题,即 Kafka 节点间歇性地停止响应并出现错误:

ERROR Error while accepting connection (kafka.network.Acceptor)
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
at kafka.network.Acceptor.accept(SocketServer.scala:460)
at kafka.network.Acceptor.run(SocketServer.scala:403)
at java.lang.Thread.run(Thread.java:745)

我们已经部署了最新的 Kafka 版本并使用 spring-kafka 作为客户端:

kafka_2.12-2.1.0 (CentOS Linux release 7.6.1810 (Core))


  • 有三个观察结果:
  • 如果我们这样做 lsof -p <kafka_pid>|wc -l ,我们得到的开放描述符总数仅为 7000 左右。
  • 如果我们只是做lsof|grep kafka|wc -l ,我们得到大约 150 万个开放式 FD。我们已经检查过它们都只属于 Kafka 进程。
  • 如果我们将系统降级到 Centos6,那么 lsof|grep kafka|wc -l回到 7000。

  • 我们尝试将文件限制设置为非常大,但仍然遇到此问题。以下是为 kafka 进程设置的限制:
    cat /proc/<kafka_pid>/limits
    Limit Soft Limit Hard Limit Units
    Max cpu time unlimited unlimited seconds
    Max file size unlimited unlimited bytes
    Max data size unlimited unlimited bytes
    Max stack size 8388608 unlimited bytes
    Max core file size 0 unlimited bytes
    Max resident set unlimited unlimited bytes
    Max processes 513395 513395 processes
    Max open files 500000 500000 files
    Max locked memory 65536 65536 bytes
    Max address space unlimited unlimited bytes
    Max file locks unlimited unlimited locks
    Max pending signals 513395 513395 signals
    Max msgqueue size 819200 819200 bytes
    Max nice priority 0 0
    Max realtime priority 0 0
    Max realtime timeout unlimited unlimited us

    我们这里有几个问题:
  • 当我们已经配置了如此大的进程限制时,为什么代理会间歇性地关闭? kafka 是否需要更多可用的文件描述符?
  • 为什么 lsof 的输出有差异和 lsof -p在centos
    6和centos 7?
  • broker节点的数量是不是少了3个?将复制因子视为 2,每个主题大约有 100 个分区,分布在 3 个节点中,因此每个节点大约有 33 个分区。


  • 编辑1:
    似乎我们遇到了 Kafka 问题: https://issues.apache.org/jira/browse/KAFKA-7697

    我们将计划将 Kafka 版本降级到 2.0.1。

    最佳答案

    根据提问者的早期更新,他发现他正在点击 https://issues.apache.org/jira/browse/KAFKA-7697
    现在快速检查显示它已解决,并且基于 jira 似乎该问题的解决方案是使用 Kafka 2.1.1 及更高版本。

    关于apache-kafka - Kafka 代理节点宕机并出现 "Too many open files"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55127305/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com