我想知道Kafka如何使用开放文件描述符。为什么建议使用大量的打开文件描述符。它是否会影响生产者和消费者的吞吐量。
答案 0 :(得分:3)
代理为每个日志段文件和网络连接创建和维护文件句柄。如果代理托管许多分区并且分区具有许多日志段文件,则总数可能非常大。这也适用于网络连接。
我不会立即看到设置较大file-max
导致的任何可能的性能下降,但页面缓存未命中。
答案 1 :(得分:2)
Kafka为每个段文件保持一个文件描述符打开,如果限制太低,它会失败。我不知道它是否会影响消费者吞吐量,但我认为它没有,因为Kafka似乎忽略了限制,直到达到它。
段文件的数量是分区数乘以某个取决于保留策略的数字。默认保留策略是在一周后启动新段(或1GB,无论先发生什么),并在其中的所有数据都超过一周时删除段。
(免责声明:这个答案适用于Kafka 1.0,基于我从一个安装中学到的东西)
答案 2 :(得分:0)
我们可以通过以下方式进行检查。
如果代理托管许多分区。例如,Kafka经纪人至少需要以下数量的文件描述符才能跟踪日志段文件:
(分区数)*(分区大小/段大小)