2.2. 階層の作成とサブシステムの接続
警告
以下に示した新規階層作成とサブシステム接続の手順は、ご使用のシステム上で cgroup がまだ設定されていないことを前提としています。その場合、これらの手順は、システム上の操作には影響を及ぼしません。しかし、タスクを持つ cgroup 内の調整可能なパラメーターを変更すると、それらのタスクに直ちに影響を及ぼす可能性があります。本ガイドでは、単一もしくは複数のタスクに影響を及ぼす可能性がある調整可能な cgroup のパラメーターの変更を初回に例示する際に警告します。
cgroup が設定済み (手動もしくは
cgconfig サービスを使用して) のシステム上では、最初に既存の階層をアンマウントしておかないと、これらのコマンドは失敗し、システムの操作に影響を及ぼします。実稼働システム上ではこれらの手順を試さないようにしてください。
階層を作成して、サブシステムを接続するには、root として、
/etc/cgconfig.conf ファイルの mount セクションを編集します。mount セクションのエントリは、以下のような形式になります。
subsystem = /cgroup/hierarchy;
subsystem = /cgroup/hierarchy;
cgconfig は次回の起動時に、階層を作成し、サブシステムを接続します。
以下の例は、
cpu_and_mem という名前の階層を作成し、cpu、cpuset、cpuacct、および memory のサブシステムを接続します。
その他の方法
シェルコマンドとユーティリティを使用して、階層の作成とサブシステムの接続を行うこともできます。
root として、その階層用の マウントポイント を作成します。マウントポイントには、cgroupの名前を入れます。
mkdir /cgroup/name
~]# mkdir /cgroup/name
例:
mkdir /cgroup/cpu_and_mem
~]# mkdir /cgroup/cpu_and_mem
次に、
mount コマンドを使用して、階層をマウントし、同時に一つまたは複数のサブシステムを接続します。以下はその例です。
mount -t cgroup -o subsystems name /cgroup/name
~]# mount -t cgroup -o subsystems name /cgroup/name
ここで、subsystems は、コンマ区切りのサブシステム一覧で、また name は階層名です。利用可能な全サブシステムの簡単な説明は Red Hat Enterprise Linux で利用可能なサブシステム に記載しています。また 3章サブシステムと調整可能なパラメーター には詳しい参考情報を記載しています。
例2.3 mount コマンドを使用したサブシステムの接続
この例では、
/cgroup/cpu_and_mem という名前のディレクトリがすでに存在しており、作成する階層のマウントポイントとして機能します。cpu、cpuset、および memory のサブシステムを cpu_and_mem という名前の階層に接続し、/cgroup/cpu_and_mem 上の cpu_and_mem 階層に mount します。
mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem
~]# mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem
すべての利用可能なサブシステムとそれらの現在のマウントポイント (つまり、接続された階層がマウントされている場所) を一覧表示するには、
lssubsys [3] コマンドを使用します。
この出力は、以下のような内容を示しています。
cpu、cpuset、およびmemoryのサブシステムは、/cgroup/cpu_and_memにマウントされた階層に接続されています。net_cls、ns、cpuacct、devices、freezer、およびblkioのサブシステムは、対応するマウントポイントがないことから、まだ、どの階層にも接続されていないことを示しています。
[3]
lssubsys コマンドは、libcgroup パッケージによって提供されるユーティリティの一つです。これを使用するには、libcgroup をインストールする必要があります。lssubsys を実行できない場合には、2章コントロールグループの使用法 を参照してください。