Fork: retry: ресурс временно недоступен

Я пытаюсь установить Intel MPI Benchmark на своем компьютере, и я получаю сообщение об ошибке:

fork: retry: Resource temporarily unavailable

Затем я получаю эту ошибку снова, когда я запускаю команды ls и top.

Что вызывает эту ошибку?

Конфигурирование моей машины:

Dell precision T7500
Scientific Linux release 6.2 (Carbon)

Ответ 1

Это обычно вызвано исчерпыванием дескрипторов файлов.

Ограничение дескриптора файловой системы в системе, что вы получаете от команды:

sysctl fs.file-nr

Это возвращает количество дескрипторов файлов:

<in_use> <unused_but_allocated> <maximum>

Чтобы узнать, какой лимит дескриптора файла пользователя запущен, выполните команды:

sudo su - <username>
ulimit -Hn

Чтобы узнать, сколько файловых дескрипторов используется пользователем, выполните команду:

sudo lsof -u <username> 2>/dev/null | wc -l

Итак, если у вас есть проблема с ограничениями дескриптора системного файла, вам нужно будет отредактировать файл /etc/sysctl.conf и добавить или изменить его уже существует, строку с fs.file-max и установить его на значение, достаточно большое, чтобы иметь дело с количеством дескрипторов файлов, которые вам нужны, и перезагрузиться.

fs.file-max = 204708

Ответ 2

Другая возможность - слишком много потоков. Мы просто столкнулись с этим сообщением об ошибке при запуске тестового жгута против приложения, использующего пул потоков. Мы использовали

watch -n 5 -d "ps -eL <java_pid> | wc -l"

чтобы посмотреть текущее количество встроенных потоков Linux, работающих в пределах данного идентификатора процесса Java. После этого около 1000 (для нас - YMMV), мы начали получать сообщение об ошибке, которое вы упоминаете.