Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第3章 libcgroup ツールの使用

Red Hat Enterprise Linux の以前のバージョンの cgroup 管理用のメインツールである libcgroup パッケージは非推奨になりました。競合を回避するには、systemd Red Hat Enterprise Linux 7 で利用可能なコントローラー libcgroup ツールを使用しないでください。これにより、libcgroup ツールを適用する限定スペースが残されるので、現在 systemd でサポートされていないコントローラーを管理する必要がある場合にのみ使用してください(例: net_prio )。
以下のセクションでは、階層のデフォルトシステムと競合しずに、関連するシナリオで libcgroup ツールを使用する方法を説明します。
注記
libcgroup ツールを使用するには、まず libcgroup パッケージおよび libcgroup-tools パッケージがシステムにインストールされていることを確認します。これらのツールをインストールするには、root で以下を実行します。
~]# yum install libcgroup
~]# yum install libcgroup-tools
注記
net_prio コントローラーは、他のコントローラーなどのカーネルでコンパイルされません。マウントを試みる前にロードする必要があるモジュールです。このモジュールを読み込むには、root で以下を入力します。
~]# modprobe netprio_cgroup

3.1. 階層のマウント

自動的にマウントされていないカーネルリソースコントローラーを使用するには、このコントローラーを含む階層を作成する必要があります。/etc/cgconfig.conf 設定ファイルの mount セクションを編集して、階層を追加または切断します。このメソッドは、コントローラーの割り当てを永続化します。これは、システムの再起動後に設定が保持されます。別の方法として、mount コマンドを使用して、現行セッションにのみ一時的なマウントを作成します。

cgconfig サービスの使用

libcgroup-tools パッケージでインストールされる cgconfig サービスにより、追加のリソースコントローラーの階層をマウントする方法が提供されます。デフォルトでは、このサービスは自動的に開始されません。cgconfig を開始すると、/etc/cgconfig.conf 設定ファイルから設定を適用します。そのため、設定はセッションからセッションに再作成され、永続化されます。cgconfig を停止すると、マウントしたすべての階層をアンマウントすることに注意してください。
libcgroup パッケージでインストールされるデフォルトの /etc/cgconfig.conf ファイルには構成設定が含まれておらず、systemd がメインのリソースコントローラーを自動的にマウントする情報のみが含まれます。
3 つのタイプのエントリーは、/etc/cgconfig.conf - mount、group、および template で作成できます。マウントエントリーは、階層を仮想ファイルシステムとして作成およびマウントするために使用され、コントローラーをそれらの階層にアタッチするために使用されます。Red Hat Enterprise Linux 7 では、デフォルトの階層は /sys/fs/cgroup/ ディレクトリーに自動的にマウントされます。したがって、cgconfig はデフォルト以外のコントローラーのみを接続するために使用されます。マウントエントリーは、以下の構文を使用して定義されます。
mount {
    controller_name = /sys/fs/cgroup/controller_name;
    …
}
controller_name を、階層にマウントするカーネルリソースコントローラーの名前に置き換えます。例3.1「マウントエントリーの作成」 を参照してください。

例3.1 マウントエントリーの作成

net_prio コントローラーをデフォルトの cgroup ツリーに割り当てるには、以下のテキストを /etc/cgconfig.conf 設定ファイルに追加します。
mount {
    net_prio = /sys/fs/cgroup/net_prio;
}
次に、cgconfig サービスを再起動して設定を適用します。
~]# systemctl restart cgconfig.service
/etc/cgconfig.conf のグループエントリーは、リソースコントローラーのパラメーターを設定するために使用できます。「Cgroup パラメーターの設定」
/etc/cgconfig.conf 内のテンプレートエントリーを使用して、すべてのプロセスに適用されるグループ定義を作成できます。

mount コマンドの使用

mount コマンドを使用して、階層を一時的にマウントします。これを行うには、最初に systemd がメインのリソースコントローラーをマウントする /sys/fs/cgroup/ ディレクトリーにマウントポイントを作成します。root で以下を入力します。
~]# mkdir /sys/fs/cgroup/name
name を新しいマウント宛先の名前に置き換え、通常コントローラーの名前が使用されます。次に mount コマンドを実行して階層をマウントし、1 つ以上のサブシステムを同時にアタッチします。root で以下を入力します。
~]# mount -t cgroup -o controller_name none /sys/fs/cgroup/controller_name
controller_name をコントローラーの名前に置き換えて、マウントするデバイスと宛先フォルダーの両方を指定します。-t cgroup パラメーターはマウントのタイプを指定します。

例3.2 mount コマンドでコントローラーをアタッチ

mount コマンドを使用して net_prio コントローラーの階層をマウントするには、最初にマウントポイントを作成します。
~]# mkdir /sys/fs/cgroup/net_prio
次に、前の手順で作成した宛先に対して net_prio をマウントします。
~]# mount -t cgroup -o net_prio none /sys/fs/cgroup/net_prio
~]# lssubsys -am
cpuset /sys/fs/cgroup/cpuset
cpu,cpuacct /sys/fs/cgroup/cpu,cpuacct
memory /sys/fs/cgroup/memory
devices /sys/fs/cgroup/devices
freezer /sys/fs/cgroup/freezer
net_cls /sys/fs/cgroup/net_cls
blkio /sys/fs/cgroup/blkio
perf_event /sys/fs/cgroup/perf_event
hugetlb /sys/fs/cgroup/hugetlb
net_prio /sys/fs/cgroup/net_prio