我想知道Kafka是如何使用开放文件描述符的。为什么建议使用大量打开的文件描述符。它是否影响生产商和消费者的吞吐量。
3pvhb19x1#
kafka为每个段文件打开一个文件描述符,如果限制太低,它会失败。我不知道它是否会影响消费者吞吐量,但我认为不会,因为Kafka似乎忽略了这个限制,直到它达到为止。段文件数是分区数乘以依赖于保留策略的某个数。默认的保留策略是在一周后(或1gb,无论先发生的是什么)开始一个新段,并在段中的所有数据都超过一周时删除该段。(免责声明:此答案适用于Kafka1.0,基于我从一次安装中学到的知识)
2sbarzqh2#
我们可以通过以下方式办理入住手续。如果代理托管多个分区。例如,kafka代理至少需要以下数量的文件描述符来跟踪日志段文件:(分区数)*(分区大小/段大小)
kokeuurv3#
代理为每个日志段文件和网络连接创建和维护文件句柄。如果代理托管许多分区并且分区有许多日志段文件,那么总数可能非常巨大。这也适用于网络连接。我没有立即看到任何可能的性能下降所造成的设置大 file-max ,但页面缓存丢失很重要。
file-max
3条答案
按热度按时间3pvhb19x1#
kafka为每个段文件打开一个文件描述符,如果限制太低,它会失败。我不知道它是否会影响消费者吞吐量,但我认为不会,因为Kafka似乎忽略了这个限制,直到它达到为止。
段文件数是分区数乘以依赖于保留策略的某个数。默认的保留策略是在一周后(或1gb,无论先发生的是什么)开始一个新段,并在段中的所有数据都超过一周时删除该段。
(免责声明:此答案适用于Kafka1.0,基于我从一次安装中学到的知识)
2sbarzqh2#
我们可以通过以下方式办理入住手续。
如果代理托管多个分区。例如,kafka代理至少需要以下数量的文件描述符来跟踪日志段文件:
(分区数)*(分区大小/段大小)
kokeuurv3#
代理为每个日志段文件和网络连接创建和维护文件句柄。如果代理托管许多分区并且分区有许多日志段文件,那么总数可能非常巨大。这也适用于网络连接。
我没有立即看到任何可能的性能下降所造成的设置大
file-max
,但页面缓存丢失很重要。