[[FrontPage]] >

* 目次 [#k8ae0dfd]
#contents

* 制限 [#s5f9573e]

&ref(images/info.png,nolink);cgroup は、''Linux Kernel 2.6.24''以降(&ref(images/debian.png,nolink);Debian squeeze、&ref(images/centos.png,nolink);CentOS 6)で利用可能ですのでご注意ください。

* セットアップ [#sb1d3d9e]

** &ref(images/debian.png,nolink);Debian squeeze [#oec9002c]

+ 手動(または/etc/fstab)でcgroup仮想ファイルシステムをマウントして利用することも可能ですが、cgroup-binパッケージをインストールすると、柔軟なセットアップが可能になります。
#geshi{{
$ sudo apt-get install cgroup-bin
...
Starting cgconfig service: .
Starting CGroup Rules Engine Daemon...
}}
+ デフォルトのセットアップ状況を確認します。
#geshi{{
$ ls -l /mnt/cgroups/
total 0
drwxr-xr-x 3 root root 0 Feb 21 19:40 cpu
drwxr-xr-x 3 root root 0 Feb 21 19:40 cpuacct
drwxr-xr-x 3 root root 0 Feb 21 19:40 devices

$ cat /proc/cgroups 
#subsys_name	hierarchy	num_cgroups	enabled
cpuset	0	1	1
ns	0	1	1
cpu	1	2	1
cpuacct	2	2	1
devices	3	2	1
freezer	0	1	1
net_cls	0	1	1
}}

** &ref(images/ubuntu.png,nolink);Ubuntu 12.10 [#d22c4a57]
** &ref(images/ubuntu.png,nolink);Ubuntu 13.04、12.10 [#d22c4a57]

+ Ubuntuで提供されているのは、cgroup-lite です。cgroup-bin もインストールできますが、Debianのようなサービス(cgconfig、CGroup Rules Engine Daemon)は追加されませんので注意が必要です。
#geshi{{
$ sudo apt-get install cgroup-lite
...
}}
+ デフォルトのセットアップ状況を確認します。
#geshi{{
$ ls -l /sys/fs/cgroup
total 0
drwxr-xr-x 2 root root 0 Feb 21 19:53 blkio
drwxr-xr-x 2 root root 0 Feb 21 19:53 cpu
drwxr-xr-x 2 root root 0 Feb 21 19:53 cpuacct
drwxr-xr-x 2 root root 0 Feb 21 19:53 cpuset
drwxr-xr-x 2 root root 0 Feb 21 19:53 devices
drwxr-xr-x 2 root root 0 Feb 21 19:53 freezer
drwxr-xr-x 2 root root 0 Feb 21 19:53 memory
drwxr-xr-x 2 root root 0 Feb 21 19:53 perf_event

$ cat /proc/cgroups 
#subsys_name	hierarchy	num_cgroups	enabled
cpuset	33	1	1
cpu	34	1	1
cpuacct	35	1	1
memory	36	1	1
devices	37	1	1
freezer	38	1	1
blkio	39	1	1
perf_event	40	1	1
}}

** &ref(images/centos.png,nolink);CentOS 6 [#v2f6daa7]

+ libcgroupパッケージをインストールします。デフォルトでは、cgconfig、cgredサービスが起動されませんので、必要に応じて有効にし起動させます。
#geshi{{
$ sudo yum install libcgroup
...
$ sudo chkconfig cgconfig on
$ sudo service cgconfig start
$ sudo chkconfig cgred on
$ sudo service cgred start
}}
+ デフォルトのセットアップ状況を確認します。
#geshi{{
$ cat /proc/cgroups 
#subsys_name	hierarchy	num_cgroups	enabled
cpuset	3	1	1
ns	0	1	1
cpu	4	1	1
cpuacct	5	1	1
memory	6	1	1
devices	7	1	1
freezer	8	1	1
net_cls	9	1	1
blkio	10	1	1
perf_event	0	1	1
net_prio	0	1	1

$ ls -l /cgroup
total 0
drwxr-xr-x 2 root root 0 Feb 21 20:14 blkio
drwxr-xr-x 2 root root 0 Feb 21 20:14 cpu
drwxr-xr-x 2 root root 0 Feb 21 20:14 cpuacct
drwxr-xr-x 2 root root 0 Feb 21 20:14 cpuset
drwxr-xr-x 2 root root 0 Feb 21 20:14 devices
drwxr-xr-x 2 root root 0 Feb 21 20:14 freezer
drwxr-xr-x 2 root root 0 Feb 21 20:14 memory
drwxr-xr-x 2 root root 0 Feb 21 20:14 net_cls
}}

* リソース管理グループの設定 [#u5ebed47]

- 当然ながら、cgroup仮想ファイルシステムはOS起動時に都度マウントされるため、必要なリソース管理グループは何らかの方法でセットアップしなければなりません。

** cgconfig サービスを利用する場合(&ref(images/debian.png,nolink);Debian squeeze、&ref(images/centos.png,nolink);CentOS 6) [#gab9d6ad]

+ ''/etc/cgconfig.conf'' に以下の要領でリソース管理グループを追加します。
#geshi(bash,number){{
group hadoop-yarn {
    perm {
        task {
            uid = yarn;
            gid = yarn;
        }
        admin {
            uid = yarn;
            gid = yarn;
        }
    }
    cpu {
    }
}
}}

** &ref(images/ubuntu.png,nolink);Ubuntu 12.10 の場合 [#h611e4e7]

+ Ubuntu では、cgconfig 及び CGroup Rules Engine Daemon サービスが削除されています(([[cgroup-bin (deleted) init scripts stick around>https://bugs.launchpad.net/ubuntu/+source/libcgroup/+bug/1096771]]))ので、独自の方法でリソース管理グループをセットアップする必要があります。例えば、以下のようなUpstartジョブ(/etc/init/cgconfig4yarn.conf)を用意してセットアップする方法が考えられるでしょう。
#geshi(bash,number){{
description "cgroup configurations for YARN"

start on started cgroup-lite

script
    for subsys in cpu; do
        HIERARCHY_PATH=/sys/fs/cgroup/${subsys}/hadoop-yarn
        if [ ! -d $HIERARCHY_PATH ]; then
            mkdir $HIERARCHY_PATH
            chown -R yarn:yarn $HIERARCHY_PATH
        fi
    done
end script
}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS