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のエラーを起こす場合がありますので、注意して使い、もし問題が発生したのならば、これらをコメントアウトするようにしてください。
関連項目
- 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.