file-max
максимальные Дескрипторы файлов (FD), осуществленные на уровне ядра, который не может быть превзойден всеми процессами без увеличения. ulimit
осуществляется на уровне процесса, который может быть меньше, чем file-max
.
Нет никакого риска влияния производительности путем увеличения file-max
. Современные дистрибутивы имеют максимальный набор FD довольно высоко, тогда как в прошлом он потребовал, чтобы перекомпиляция ядра и модификация увеличили прошлые 1024. Я не увеличился бы в масштабе всей системы, если у Вас нет технической потребности.
Для конфигурации для каждого процесса часто нужно настроенный для обслуживания конкретного демона быть этим или база данных или веб-сервер. Если Вы удаляете предел полностью, тот демон мог бы потенциально исчерпать все доступные системные ресурсы; значение Вас не могло бы решить проблему кроме путем нажатия кнопки сброса или цикла включения и выключения питания. Конечно, любой из тех, вероятно, приведет к повреждению любых открытых файлов.
Ограничение ulimit для уникального пользователя. Таким образом, user1, независимо от того, сколько раз входил в систему или запущен процесс, будет ограничен 1024. Это объединено.
Я не уверен, полностью ли я понимаю значение этого предложения (английский не мой родной язык) Если это предложение означает, что конфигурация ulimit для файловых дескрипторов не является ограничением для каждого процесса, принятый ответ (AFAIK) неверен.
Я имею в виду, что если какой-то пользователь запустил 4 процесса и конфигурация ulimit для FD равна 1024, каждый процесс может открывать 1024 ФД. Пользователь будет ограничен не 1024 FD, а процессами, которые запускаются этим пользователем.
Например:
me@superme:~$ ulimit -n
1024
me@superme:~$ lsof | grep $USER | wc -l
8145
Вот пример Perl, в котором мы достигаем предела (это ограничение для каждого процесса):
#!/usr/bin/perl
$count = 0;
@filedescriptors;
while ($count <= 1024) {
$FILE = ${count};
open $FILE, ">", "/tmp/example$count" or die "\n\n FDs: $count $!";
push(@filedescriptors, $FILE);
$count ++;
}
Результат: