web-dev-qa-db-ja.com

特定のユーザーまたはプロセスのRAM使用を制限するにはどうすればよいですか?

時々メモリリークするバックグラウンドサービスを使用しています。使用を防ぐために Alt+SysRqREISUB[ 1 ]、1つのプロセスまたはシステムユーザーのRAM 1の使用を制限したいと思います。

私は本当に言いたいです:ユーザーxは1GBの最大量RAMを使用できます。

これは実行可能ですか?これには一種の仮想マシンが必要ですか? Ubuntu9.10を使用しています。

8
guerda

limit はあなたの友達です。 -mフラグを確認してください。私はthinkプロセスを起動する前にこれを設定し、それ以降(現在のシェルで)適用されます。

10
basszero

シェルコマンドulimit(bashの場合)またはlimit(cshの場合)に加えて、ulimit()関数を使用してコード内からこれを制御できます。

4
KeithB