RAMの使用量を制限するユーザーを作成するには?

RAMの使用量を制限するユーザーを作成するには?

だから、4GBのRAM + 4GBのスワップスペースがあります。限られたRAMとスワップスペース(3GBのRAMと1GBのスワップスペース)を持つユーザーを作成したいと思います。そのようなことは可能ですか?限られたRAMでアプリケーションを起動し、別のユーザーを作成せずに(特別なアプリケーションをインストールせずにデフォルトのDebian / CentOSサーバー構成を使用し、sudoを使用せずに)交換できますか?

修正する:

だから端末を開いて入力します。限界値コマンド:制限ulimit -v 1000000に似ています976,6Mb。次に、電話をかけてulimit -a制限が「オン」になっていることを知りました。その後、いくつかのbashスクリプトを実行してアプリケーションをコンパイルして起動しましたnohupチャンギ nohup ./cloud-updater-linux.sh >& /dev/null &...しかし時間が経つと、次のような結果が出ます。

ここに画像の説明を入力してください。

(制限が適用されない場合は問題ありません。大きなライブラリをダウンロードしてコンパイルを開始します。)

しかし、シェルに制限を適用し、すべてのプロセスがそれを使い始めたと思いますかulimit -v 1000000?私は何が間違っていましたか?端末と端末で始まるすべての子プロセスのメモリ使用量をどのように制限できますか?

ベストアンサー1

ulimitまさにこれのためです。ulimitユーザーごとまたはグループごとにデフォルト値を設定できます。

/etc/security/limits.conf

ulimit -v KBYTES最大仮想メモリサイズを設定します。最大交換金額を提供することはできないようです。これは、単にユーザーが使用できる仮想メモリ量の制限です。

したがって、limits.conf次の行があります(最大4Gメモリ)。

luser  hard  as   4000000

アップデート - CGroups

ulimit課される制限はlimits.confプロセスごとに適用されます。私はこの点について全く不明です。

ユーザーが使用するメモリの合計量を制限したい場合(必要な事項)、使用したいcgroup

存在する/etc/cgconfig.conf

group memlimit {
    memory {
        memory.limit_in_bytes = 4294967296;
    }
}

cgroupこれにより、最大メモリ制限が4GiBのメモリが作成されます。

存在する/etc/cgrules.conf

luser   memory   memlimit/

これにより、実行中のすべてのプロセスがluserで作成されたcgroup内で実行されます。memlimitcgconfig.conf

おすすめ記事