rtprio
maximum realtime priority allowed for non-privileged processes (Linux 2.6.12 and higher)
priority
the priority to run user process with (negative values boost process priority)
これらはなぜ違うのですか?
Linuxには、さまざまなクラスのプロセススケジューラがあります。デフォルトの1つ(CFQ)は基本的に、実行したい各プロセスに等しい量のタイムスライスを与え、実行可能なタスクをキューに入れ、全員が平均して同じ時間だけ待機するようにします。このルールにはいくつかの例外がありますが、それが基本的な考え方です。
スケジューラの別のクラスは、リアルタイムスケジューラです。リアルタイムは少し異なり、実行可能なタスクを公平なキュースキームにキューイングします。リアルタイムプロセスは、プロセスで必要になるとすぐにCPU時間を取得します。これにより、「リアルタイム」のためのスペースを作るために、CPUから実行中のプロセスが削除されます。 ' 処理する。
彼らはどんな値を取ることができますか?
「優先順位」が行うことは、プロセスの素晴らしさを変更して、ログイン時にメインプロセスが特定の素晴らしさから始まり、生成した子プロセスも同じ素晴らしさから始まります。
これは、他の競合するプロセスを優先してスケジュールされる可能性を高める効果があり、ユーザーエクスペリエンスは、nicenessの値が低い場合は応答性/対話性が高くなり、nicenessが高くなると応答性/対話性が低くなる場合があります。
たとえば、通常のログインユーザーがサービス可能なデーモンよりも優先度を低くすることや、rootが他のものよりもログインの優先度を高くすることが重要な場合があります。
リアルタイムに関しては、競合は「rtprio」フィールドで処理されます。2つのリアルタイムタスクがあり、どちらも実行したい場合は、「rtprio」値を使用して、優先順位を最初に選択するプロセスを決定します。rtprioが高いほど、優先度の高いタスクが生成されます。
limits.confでこれを設定すると、rootが値を設定しなくても、リアルタイムタスクを特定の優先順位バンドに設定できます。これは、リアルタイムスケジューラを使用して実行するように設定されていないタスクには影響しません。
「nice」値は「rtprio」と同じようにする必要がありますが、標準のCFQスケジューリング用です。私はそれを試したことはありません。PAMがこれらの制限を適切な値に設定するときに生成される初期プロセスを設定します。通常のユーザーは、rootに設定することなく、その適切なレベル以上に移動できます。明示的に再利用しない場合は、そのログインからシェルから生成されたすべてのプロセスが、最初に作成された親プロセスからlimits.confに設定されたnice値を継承することを意味します。
デフォルトは何ですか?
「デフォルト」の制限-技術的には、すべてがpid 1に設定されています。明示的に設定しない限り、リソース制限は親プロセスから継承されinit
ます。制限が定義されていないか、オーバーライドされていない場合、デフォルトの継承です。
その他の価値
data
maximum data size (KB)
プロセスが初期化されると、プロセスがメモリにコピーされるときに「データセグメント」と呼ばれるメモリが割り当てられます。これは、グローバルからのスペース、おそらくヒープから割り当てられた他の初期化されたデータとメモリが存在する場所です。制限は、プロセスが取得できる最大割り当て量を制御します。
malloc()がデータを格納するためにデータセグメントを過剰に使用することはほとんどないため、この制限に達することはほとんどありません。
fsize
maximum filesize (KB)
これは文字通り、そのユーザーと同じようにファイルに書き込むことができる最大サイズを設定します。
memlock
maximum locked-in-memory address space (KB)
アプリケーションが取得したほぼすべてのメモリは「解放可能」です。それは交換することができます。メモリがロックされたメモリはスワップ可能ではなく、常駐します。この値は厳密に制御されています。メモリのシステムを枯渇させてスワップを引き起こすために悪用される可能性があるためです。通常、セキュリティアプリケーション(ページがスワップされることは決してなく、スワップパーティションから読み取り可能になる)で役立ちます。
cpu
maximum CPU time (minutes)
これは、CPUでプロセスが消費できる合計時間を表します。この値を超えるプロセスは強制終了されます。これは、プロセスが開始されてから経過した時間と同じではないことに注意してください。IEのCPU時間制限が1分の場合、プロセスのCPU使用率が100%の場合は消費に1分かかりますが、プロセスの使用率が50%の場合は消費に2分かかります。
CPUを超過するとどうなりますか?
プロセスはSIGXCPU
、プロセスを終了するkillシグナルを送信されます。これは、親プロセスによってキャッチされ、そこで処理されます。
1つのプロセスのみ、またはユーザー全体がCPUの使用を禁止されていますか?
参照されているほぼすべての制限は、プロセスごとに処理されます。CPU時間を含みます。私がそうではない唯一のものは、そのユーザーによるログインの総数とプロセスの総数です。
制限付きのその他の問題点は次のとおりです。
- Maxプロセスには、軽量スレッドの数が含まれます。
- RSS制限は何もせず、何年にもわたって存在せず、設定しても意味がありません。