В слиянии Slack
Обычно, чтобы изменить количество открытых файлов, вам необходимо изменить параметры ядра (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, который касается отсутствия открытых файлов: