プロセスによってコンピュータが「フリーズ」する可能性があります(たとえば、CPUまたはスワップ領域が不足している)。これが起こらないようにする方法はありますか?たとえば、プロセスに与えることができる最大%CPUまたはIO MB / sを設定しますか?
答え1
シェルで実行されるコマンドについては、 のシェルマニュアルをお読みくださいulimit
。
ulimit()
Cにも同じことをする関数があります。
実装固有のメソッドを使用してさまざまな制限を適用することもできます。 FreeBSDでは、からまたはlogin.conf
というコマンドを使用してユーザー固有の制限を設定できますrctl
。一部のLinuxディストリビューションで使用されますlimits.conf
。
cpulimit
時間の経過とともに特定の量のCPUを使用しないようにプロセスを一時停止できるプログラムがあります。
もちろん、優先順位を調整したい場合は常にnice
合計があります。renice
答え2
部分的に。ulimit
通常、シェルヘルパーコマンドが何であるかを確認してください。 (バッシュではhelp ulimit
)。メモリ、合計CPUサイクル、および時間(%ではない)、作成するファイルサイズを制限できます。
このコマンドを使用することもできますnice
。しかし、実際にリソースが必要な他のことがなければ、niceは効果的ではありません。複数のプロセスが CPU リソースを配置して競合する場合にのみ適用されます。
Linuxでできることの1つは、メモリが不足しているときに最初にプロセスを終了する必要があることをOOM Killerに指示することです。