Как увеличить максимальное количество вилок в Ubuntu 16.04 [дубликат]

Я пытаюсь развернуть 1000 контейнеров Docker через:

nohup docker run --rm --name n-$1-$2 n-v2 bash -c "/root/sw/run.sh $1 $2" 2> ~/logs/log-$1-$2.log &

Но примерно после 500 контейнеров я начинаю получать следующую ошибку:

fork: retry: No child processes

Сервер, на котором я запускаю это, имеет 48 ядер и 192 ГБ оперативной памяти ... Я смогу без проблем раскрутить несколько тысяч таких контейнеров ...есть ли способ увеличить этот предел?

После некоторого поиска в Google я обнаружил, что могу проверить количество максимальных вилок с помощью ulimit -u ... есть ли способ изменить это?

Ответ Soren A кажется правильным, однако не похоже, что это решило проблему. Я могу добраться до ~ 12287 потоков (проверено через cat /sys/fs/cgroup/pids/user.slice/user-1000.slice/pids.current), прежде чем я начну решать ту же проблему ... как жесткие, так и мягкие ограничения в /etc/security/limits.conf установлены на 99999999 , но я все еще ограничен на уровне 12287

1
задан 7 March 2017 в 01:26

1 ответ

Можно установить значения, временные с ulimit -u <value> Или постоянно в/etc/security/limits.conf со строками как

*    hard    nproc  64000
*    soft    nproc  64000

Или то же в a, conf файл в/etc/security/limits.d, напр./etc/security/limits.d/90-nproc.conf, если Вам нравится.

Вместо того, чтобы установить его для всех пользователей (*) Вы могли сделать это только для пользователя, начинающего Ваши процессы, так, чтобы другие пользователи не могли захватить это много ресурсов в Вашей системе.

1
ответ дан 7 December 2019 в 15:40

Другие вопросы по тегам:

Похожие вопросы: