即使限制设置为无限制,kafka代理之一也有太多打开文件错误。数据太多了吗?

时间:2018-12-21 01:46:10

标签: apache-kafka

我们有一个由5个经纪人(r5.xlarge)组成的Kafka集群。昨天,我们使用Debezium开始了生产数据库快照,该快照基本上将整个数据库转储到Kafka主题中。 我可以看到,在我们的任何代理中,CPU利用率从未超过30%。另外,“网络输入”字节的峰值约为350 Mbps。

现在某个午夜某个时间,即使我在所有经纪人中都将ulimit设置为unlimited,我们的经纪人之一也因为太多打开文件异常而失败。我不了解此设置正在成为瓶颈。是经纪人数目吗?或磁盘吞吐量?还是网络?

我有一些想法:

  1. 增加经纪人的数量。
  2. 在多个磁盘中使用多个数据目录?这样会提高磁盘吞吐量吗?
  3. 使用主题压缩。

请帮助。

1 个答案:

答案 0 :(得分:1)

事实证明,在/etc/security/limits.conf中设置的最大打开文件限制不适用于我正在运行的Kafka服务。 Why so?
要检查为任何流程设置的限制,我们都可以

  1. 使用ps ax | grep kafka.Kafka
  2. 查找流程的流程ID。
  3. cat / proc / {{process_id}} / limits | grep“最大打开文件数”

对于我的Kafka进程,它设置为默认值4096。

为了增加此限制,我添加了一行 ulimit -n 1000000就在服务文件中开始kafka进程之前,一切正常!