このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

7.6 cgroup構成ファイルについて

cgroup構成ファイルの/etc/cgconfig.confには、マウント定義と1つ以上のグループ定義が含まれます。

マウント定義

mount定義では、cgroupにアタッチする前にリソース・サブシステムをマウントするために使用する仮想ファイル・システムを指定します。 構成ファイルには、mount定義を1つのみ含めることができます。

mountエントリの形式は次のとおりです。

mount {
    subsystem1 = /cgroup/resource_path1;
    [subsystem2 = /cgroup/resource_path2;]
.
.
.
}

たとえば、次のmount定義では、/cgroup/cpumemサブシステム階層以下にcpucpusetおよびmemoryサブシステムが組み合され、同様に/cgroup/iolimitおよび/cgroup/devlist以下にblkioおよびdevicesサブシステムのエントリが作成されます。 1つのサブシステムを複数のサブシステム階層に含めることはできません。

mount {
    cpu = /cgroup/cpumem;
    cpuset = /cgroup/cpumem;
    memory = /cgroup/cpumem;
    blkio = /cgroup/iolimit;
    devices = /cgroup/devlist;
}

グループ定義

group定義では、cgroup、そのアクセス権、使用するリソース・サブシステム、およびそれらのサブシステムのパラメータ値を指定します。 構成ファイルには、複数のgroup定義を含めることができます。

groupエントリの形式は次のとおりです。

group cgroup_name {
    [perm {
        task {
            uid = task_user;
            gid = task_group;
        }
        admin {
            uid = admin_user;
            gid = admin_group;
        }
    }]
    subsystem {
        subsystem.parameter1 = value1;
        [subsystem.parameter2 = value2;]
        .
        .
        .
    }
    .
    .
    .
}

cgroup_name引数では、cgroupの名前を定義します。 オプションのperm (権限)セクションのtaskセクションでは、cgroupにタスクを追加できるユーザーとグループの組合せを定義します。 adminセクションでは、サブシステム・パラメータの変更とサブグループの作成を行うことのできるユーザーとグループの組合せを定義します。 perm以下に存在する設定にかかわらず、rootユーザーは、常にadminまたはtaskを任意に変更できる権限を持っています。

1つ以上のサブシステム・セクションでは、cgroupのパラメータ設定を定義します。 cgroupに関連付けることができる/cgroupの仮想サブシステム階層は、1つのみです。 同じ階層に複数のサブシステムをグループ化する場合、すべてのサブシステムの定義を含める必要があります。 たとえば、/cgroup/cpumem階層にcpucpusetおよびmemoryサブシステムを含める場合、これらすべてのサブシステムの定義を含める必要があります。

たとえば、次のgroup定義では、データベース・プロセスのためのcgroup dbgrpを定義し、oracleユーザーにタスクの追加を許可して、CPUおよびメモリーの使用状況に関する様々なパラメータを設定しています。

group dbgrp {
    perm {
        task {
            uid = oracle;
            gid = dba;
        }
        admin {
            uid = root;
            gid = root;
        }
    }
    cpu {
#       Reallocate CPU resources once per second
        cpu.rt_period_us="1000000";
#       Allocate 50% of runtime to tasks in the cgroup
        cpu.rt_runtime_us="500000";
    }
    cpuset {
        cpuset.mems="0";
#       Allocate CPU cores 4 through 7 to tasks in the cgroup
        cpuset.cpus="4-7";
    }
    memory {
#       Allocate at most 4 GB of memory to tasks
        memory.limit_in_bytes="4G";
#       Allocate at most 8 GB of memory plus swap to tasks
        memory.memsw.limit_in_bytes="8G";
#       Apply a soft limit of 2 GB to tasks
        memory.soft_limit_in_bytes="2G"; 
    }
}

ファイルにコメントを含めるには、コメントの先頭に#文字を追加し、この文字が行の先頭になるようにします。