EMERGE_DEFAULT_OPTS
EMERGE_DEFAULT_OPTS — это переменная для Portage, которая определяет параметры, которые будут добавлены к параметрам запуска команды emerge.
EMERGE_DEFAULT_OPTS позволяет выполнять параллельно команды emerge с помощью параметров --jobs N
и --load-average X.Y
. EMERGE_DEFAULT_OPTS используются в Portage для определения ограничения системной нагрузки (load average) и ограничения количества одновременно собираемых пакетов.
Популярные примеры использования
Параллельная сборка
С параметром --jobs N
(короткое обозначение: -jN
) emerge запускает N задач одновременно. Без задания значения параметр -j
займет всё процессорное время, создавая задачи компиляции при малейшем появлении свободных ресурсов — это не рекомендуется. Значение для N не должно превышать 2 Гб ОЗУ на каждое ядро процессора. Пакеты могут достичь этого ограничения.
Чтобы запустить три задачи сборки одновременно:
EMERGE_DEFAULT_OPTS="--jobs 3"
В случае использования --load-average X.Y
(короткое обозначение: -lX.Y
), emerge будет пытаться удерживать среднюю нагрузку на систему меньше чем X.Y (число с плавающей точкой). Если также указан --jobs
, то команда будет также работать в указанных данным параметром пределах.
Средняя величина нагрузки — это тоже самое, что отображается в top и uptime. Для N-ядерных систем, средняя нагрузка в N.0
даст 100 % нагрузку. При установке ограничения X.Y=N*0.9
будет установлена нагрузка 90 %, сохраняя отзывчивость системы.
Когда
MAKEOPTS="-jN"
используется вместе с EMERGE_DEFAULT_OPTS="--jobs K --load-average X.Y"
число возможно создаваемых задач может увеличится до N*K
. Поэтому обе переменные должны быть заданы с учетом друг друга, так как вместе они создают K задач, каждая из которых может создать N задач make.MAKEOPTS
и EMERGE_DEFAULT_OPTS
подходят для длительной сборки, включающей компиляция множества файлов исходного кода, и максимально используют параметр --jobs
. Их следует использовать с осторожностью и закомментировать в случае возникновения ошибок emerge.
См. также
- MAKEOPTS — a variable that defines and limits how many parallel make jobs can be launched from Portage.
- Knowledge Base:Emerge out of memory
- Portage niceness — describes some configuration options available for system administrators to help manage Portage's resource usage.