Рекомендации по конфигурации

Important

При работе в Linux необходимо учесть последующие рекомендации, так как типичные значения по умолчанию для Linux могут быть не настроены под нужды такого интенсивного приложения с высоким уровнем ввода-вывода, как NiFi

Максимальное число дескрипторов

Серсис NiFi в любой момент может открыть очень большое количество файлов, поэтому необходимо увеличить лимиты, отредактировав файл /etc/security/limits.conf. Например:

*  hard  nofile  50000
*  soft  nofile  50000

Maximum Forked Processes

NiFi может быть настроен для генерации существенного количества потоков. Для увеличения их допустимого числа необходимо отредактировать файл /etc/security/limits.conf, например:

*  hard  nproc  10000
*  soft  nproc  10000

При этом дистрибутив может потребовать так же изменить значение в /etc/security/limits.d/90-nproc.conf, тогда следует добавить в него:

*  soft  nproc  10000

Количество доступных портов TCP

Увеличение количества доступных портов TCP особенно важно в случае, если поток устанавливает и срывает большое количество сокетов за короткий промежуток времени:

sudo sysctl -w net.ipv4.ip_local_port_range="10000 65000"

Статус сокетов TIMED_WAIT

Для того, чтобы сокеты долго не задерживались, и при необходимости быстрой настройки и отключения новых сокетов следует изменить время нахождения сокетов в статусе TIMED_WAIT при их закрытии, например:

sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait="1"

Отключение swapping в Linux

Для некоторых приложений swapping является фантастическим, но это не подходит для подобных NiFi серсисов, всегда находящихся в непрерывной работе. Чтобы сообщить Linux об отключении подкачки, следует отредактировать файл /etc/sysctl.conf, добавив строку:

vm.swappiness = 0

При этом для партиций, обрабатывающих различные NiFi-репозитории, необходимо отключить такие вещи, как atime, что в результате может привести к неожиданному увеличению производительности. Поэтому рекомендуется отредактировать файл /etc/fstab, а для интересующих партиций добавить опцию noatime.