EMERGE_DEFAULT_OPTS
EMERGE_DEFAULT_OPTS は、emerge コマンドラインの末尾に付加される項目を定義する、Portage のための変数です。
EMERGE_DEFAULT_OPTS は、同時に実行できるパッケージビルド数を指定する --jobs N
オプションや、システム負荷 (ロードアベレージ) の最大値によってどこまでの並列度を許容するかを指定する --load-average X.Y
オプションを介して、Portage に並列 emerge 操作を許可するためによく使用されます。
一般的な用法
並行ビルド
--jobs N
(短縮形:-jN
)を使うことで、N個のジョブを同時に実行します(引数なしでは、-j
は可能な限り多くのジョブでプロセッサを溢れさせます。そしてこれは非推奨です)。一般的には、Nの値にはプロセッサコア数と同じ値を、ただし RAM 総容量 / 2GB を超えないように減らした値を設定します。
例えば、3 つまでのビルドジョブを同時に行う場合:
EMERGE_DEFAULT_OPTS="--jobs 3"
--load-average X.Y
(短縮形:-lX.Y
)を使用することで、emergeはシステムのロードアベレージをX.Y(浮動小数点数)未満に抑えようと試みます。もし--jobs
が一緒にセットされている場合、emergeはパラメータが指示している制限以内で実行されます。
ロードアベレージの値はtopやuptimeで表示される値と同一で、Nコアのシステムでは、ロードアベレージN.0
は100%ロードされている事になります。経験則としては、X.Y=N*0.9
とセットすることで、これによってロードの制限を90%にし、従って応答性を維持することができます。
もし
MAKEOPTS="-N"
がEMERGE_DEFAULT_OPTS="--jobs K --load-average X.Y"
と一緒に使用されている場合、作成されうるタスクの数はN*K
です。従って、両方の変数は、これらがそれぞれ最大N個のタスクを作り出すK個のジョブを作成することを考慮して設定する必要があります。これらの2つの設定は、たくさんのソースコードファイルを含む長いemergeの際に、--jobs
パラメータを最大限に活かすのに適しています。これらはまた、emergeのエラーを起こす場合がありますので、注意して使い、もし問題が発生したのならば、これらをコメントアウトするようにしてください。
See also
- MAKEOPTS — a variable that defines 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.