Почему ulimit -u намного больше, чем количество запущенных процессов, вызывает проблемы?

Я запускаю 200 процессов, но ulimit -u из 400, кажется, вызывает некоторые проблемы:

 $ ps -A | wc -l 199 $ ulimit -u 400 zsh: fork failed: resource temporarily unavailable 

Я смущен. Почему предел ударил?

: Первоначально ulimit -u дает

 $ ulimit -u 47334 

One Solution collect form web for “Почему ulimit -u намного больше, чем количество запущенных процессов, вызывает проблемы?”

В потоках Linux подсчитывается значение ulimit -u , но они не отображаются нормально с ps -A . Вам нужно добавить флаг L

например, на моей машине:

 % ps -A | wc -l 124 % ps -AL | wc -l 155 

Мы видим, что работает еще 31 процесс; это потоки, которые обычно скрыты от просмотра.

С java и другими высокопоточными приложениями может быть легко запустить больше потоков / процессов, чем вы думаете. Ваша ценность ulimit -u должна учитывать это.

Это может неожиданно поразить людей, запускающих много java-приложений в системах RedHat, где по умолчанию используется параметр ulimit :

 % cat /etc/security/limits.d/20-nproc.conf # Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 4096 root soft nproc unlimited 
  • «Ошибка вилки» при использовании моей среды разработки
  • Являются ли ограничения в linux (например, контролируемыми ulimit или /etc/security/limits.conf) для каждого пользователя или для каждого пользователя за процесс?
  • Настройка ulimit `max open files` для демонтированного мастер-процесса nginx
  • «Ulimit -m» не работает на (современном) Linux?
  • Почему я хочу ограничить размер сегмента «.data»?
  • Понимание разницы между pid_max, ulimit -u и thread_max
  • Изменить ulimit (открыть файлы) определенного процесса
  • В чем опасность установки максимального предела максимальным дескрипторам файлов для каждого процесса?
  • Постоянное изменение размера стека для каждого процесса
  • Как правильно решить эту проблему памяти?
  • Изменения в /etc/security/limits.conf и /etc/security/limits.d/20-nproc.conf не влияют
  • Linux и Unix - лучшая ОС в мире.