このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
cgroup
構成ファイルの/etc/cgconfig.conf
には、マウント定義と1つ以上のグループ定義が含まれます。
マウント定義
mount
定義では、cgroup
にアタッチする前にリソース・サブシステムをマウントするために使用する仮想ファイル・システムを指定します。 構成ファイルには、mount
定義を1つのみ含めることができます。
mount
エントリの形式は次のとおりです。
mount {subsystem1
= /cgroup/resource_path1
; [subsystem2
= /cgroup/resource_path2
;] . . . }
たとえば、次のmount
定義では、/cgroup/cpumem
サブシステム階層以下にcpu
、cpuset
および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
エントリの形式は次のとおりです。
groupcgroup_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
階層にcpu
、cpuset
および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"; } }
ファイルにコメントを含めるには、コメントの先頭に#
文字を追加し、この文字が行の先頭になるようにします。