2.10. /etc/cgconfig.conf ファイルの生成

/etc/cgconfig.conf ファイルの設定は、cgsnapshot ユーティリティを使用して現在の cgroup 設定から生成することができます。このユーティリティは全サブシステムおよびその cgroup の現在の状態のスナップショットを作成し、その設定を /etc/cgconfig.conf ファイルで表示されるのと同じように返します。例2.6「cgsnapshot ユーティリティの使用法」 には、cgsnapshot ユーティリティの使用例を示しています。

例2.6 cgsnapshot ユーティリティの使用法

以下のコマンドを使用して、システムで cgroup を設定します。
~]# mkdir /cgroup/cpu
~]# mount -t cgroup -o cpu cpu /cgroup/cpu
~]# mkdir /cgroup/cpu/lab1
~]# mkdir /cgroup/cpu/lab2
~]# echo 2 > /cgroup/cpu/lab1/cpu.shares
~]# echo 3 > /cgroup/cpu/lab2/cpu.shares
~]# echo 5000000 > /cgroup/cpu/lab1/cpu.rt_period_us
~]# echo 4000000 > /cgroup/cpu/lab1/cpu.rt_runtime_us
~]# mkdir /cgroup/cpuacct
~]# mount -t cgroup -o cpuacct cpuacct /cgroup/cpuacct
上記のコマンドにより、cpu サブシステムに、一部のパラメーターには特定の値を指定して、2 つのサブシステムがマウントされ、2 つの cgroup が作成されました。cgsnapshot コマンドを (-s オプションおよび空の /etc/cgsnapshot_blacklist.conf ファイル[4] を使用して) 実行すると、以下のような出力が生成されます。
~]$ cgsnapshot -s
# Configuration file generated by cgsnapshot
mount {
        cpu = /cgroup/cpu;
        cpuacct = /cgroup/cpuacct;
}

group lab2 {
        cpu {
                cpu.rt_period_us="1000000";
                cpu.rt_runtime_us="0";
                cpu.shares="3";
        }
}

group lab1 {
        cpu {
                cpu.rt_period_us="5000000";
                cpu.rt_runtime_us="4000000";
                cpu.shares="2";
        }
}
上記の例で使用した -s オプションは、cgsnapshot に対して、cgsnapshot ユーティリティのブラックリストまたはホワイトリストで定義されていないパラメーターによって生じるすべての警告を無視するように指示します。パラメーターのブラックリスト化についての詳しい情報は 「パラメーターのブラックリスト化」 を参照してください。パラメーターのホワイトリスト化についての詳しい情報は 「パラメーターのホワイトリスト化」 を参照してください。
オプションを指定しない場合、cgsnapshot によって生成される出力は、標準出力に返されます。出力をリダイレクトするファイルを指定するには、-f オプションを使用します。以下はその例です。
~]$ cgsnapshot -f ~/test/cgconfig_test.conf

警告

-f オプションを使用する際には、指定したファイルの内容がすべて上書きされる点に注意してください。このため、直接 /etc/cgconfig.conf ファイルには出力指定しないことを推奨します。
cgsnapshot ユーティリティはサブシステム別に設定ファイルを作成することもできます。サブシステムの名前を指定すると、 出力はそのサブシステムの対応する設定で構成されます。
~]$ cgsnapshot cpuacct
# Configuration file generated by cgsnapshot
mount {
        cpuacct = /cgroup/cpuacct;
}

2.10.1. パラメーターのブラックリスト化

cgsnapshot ユーティリティにより、パラメーターのブラックリスト化が可能になります。パラメーターがブラックリスト化されると、cgsnapshot によって生成された出力には表示されません。デフォルトでは、/etc/cgsnapshot_blacklist.conf ファイルでブラックリストパラメーターをチェックします。パラメーターがブラックリストに入っていない場合には、ホワイトリストをチェックします。別のブラックリストを指定するには、-b オプションを使用します。以下はその例です。
~]$ cgsnapshot -b ~/test/my_blacklist.conf


[4] cpu.shares パラメーターは、デフォルトで /etc/cgsnapshot_blacklist.conf ファイルに指定されるため、例2.6「cgsnapshot ユーティリティの使用法」 で生成される出力では省略されます。したがって、この例では空の /etc/cgsnapshot_blacklist.conf ファイルを使用しています。