在汇合松弛
通常,要更改打开文件的数量,您必须修改内核参数 (fs.file-nr) 以及 /etc/security/limits.conf。 使用 systemd,还有一个步骤。 您还必须修改 *.service 文件,以便守护程序获取新的 ulimit 参数。 这篇文章显示了适用的指令。 一旦我将 LimitNOFILE 添加到交付的
/lib/systemd/system/confluent-\*.service
文件中,然后/proc/<pid>/limits
显示 java 守护程序识别打开文件限制。 可能应该有文档说明或对交付的 systemd 文件的更改,因为现在需要在每次升级时管理交付的文件
https://confluentcommunity.slack.com/archives/C49R61XMM/p1537208485000100
参考 - https://unix.stackexchange.com/questions/345595/how-to-set-ulimits-on-service-with-systemd
理想情况下,我们应该为 LimitNOFile 提供足够好的默认值,这样就不必担心这一点,但在 systemd 服务中添加覆盖属性的能力是有意义的。 应该很容易添加到所有服务的模板中,例如经纪人
它可以在 _ https://github.com/confluentinc/cp-ansible/blob/5.1.x/roles/confluent.kafka-broker/defaults/main.yml#L14_的剧本中完成,也可以增加或减少内存, 例如
environment:
KAFKA_HEAP_OPTS: "-Xmx24g"
LimitNOFILE: 102400
但是,这不会适当地模板化 systemd 文件。
[Service]
Environment=LimitNOFILE=102400
不同于
[Service]
LimitNOFILE=102400
你是对的,正确的实现在这里,有待审查:
https://github.com/confluentinc/cp-ansible/pull/107
太好了,一直在尝试找到解决此配置问题的正确方法太久了
快速更新,我们很快就会发布一个新版本来解决这个问题。
我们刚刚合并了以下解决打开文件数量问题的 PR: