Интервал между повторными вызовами fork()

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

С помощью параметра pacefork команды schedo можно изменить число тактов, по истечении которых система может повторить вызов fork(), который в предыдущий раз не был выполнен. Например, если вызов fork() не был выполнен из-за того, что в системе не хватило памяти для создания нового процесса, то система повторит вызов по истечении указанного числа тактов. Значение по умолчанию равно 10 тактам. Поскольку один такт равен 10 мс, то система повторит вызов fork() через 100 мс.

Если нехватка пространства подкачки связана с кратковременным пиком активности, то увеличение интервала между повторными вызовами, как это сделано в следующем примере, позволяет дождаться освобождения памяти:
# schedo -o pacefork=15

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