コントロール グループ (strong>cgroups ) コンピューティング リソースを特定のプロセスまたはタスクに割り当てることができます。 CPU とメモリのセットを特定のタスク グループまたは特定のユーザーに割り当てることができます。ここの投稿では、定義されたメモリ リソースを特定の用途に割り当てる手順について詳しく説明しています。 ulimit はプロセスごとのユーザー メモリ消費を制限するため、この目標を達成することはできません。最善の選択肢は、cgroup を使用することです。 cgroups を使用すると、ユーザーはメモリ リソースだけでなく、CPU/IO にも制限できます。ユーザー「john」が使用するメモリを 100MB に制限する例を見てみましょう。
特定のユーザーのメモリを制限する
1. cgroups 設定ファイル /etc/cgconfig.conf を編集します 以下の行を追加します
# vi /etc/cgconfig.conf group memlimit { memory { memory.limit_in_bytes = 104857600; #### limit memory to 100MB } }
上記のコードは memlimit という名前の cgroup を作成します 制限は 100 mb です .
2. 別のファイル /etc/cgrules.conf を編集します。 以下の行を追加します:
# vi /etc/cgrules.conf john memory memlimit
これにより、ユーザー john が memlimit cgroup に追加され、システムから 100 MB しか取得できないことが cgroup に通知されます。
3. 構成ファイルの編集が完了したら、サービス cgred を再起動します。 と cgconfig .
# service cgred restart # service cgconfig restartcgconfig (コントロール グループ構成) サービス – cgroup の作成とサブシステムの管理に使用
cgred (コントロール グループ ルール エンジン デーモン) サービス – /etc/cgrules.conf ファイルに設定されたパラメーターに従って、タスクを cgroup に移動するために使用されます。
4. システムの起動時に両方のサービスを開始できるようにします。これにより、構成ファイル /etc/cgconfig.conf および /etc/cgrules.conf が起動時に読み込まれ、cgroup が作成されるようにします。
# chkconfig cgred on # chkconfig cgconfig on