Show Table of Contents
3.12. 共通の調整可能なパラメーター
以下のパラメーターは、使用するサブシステムを問わず、作成されたすべての cgroup に存在します。
- tasks
- cgroup で実行中のプロセスの一覧が含まれ、PID で表示されます。PID の一覧が順位付けされていることや、一意であることは保証されません (つまり、重複したエントリが含まれている可能性があります)。PID を cgroup の
tasksファイルに書き込むと、そのプロセスは cgroup に移動します。 - cgroup.procs
- cgroup で実行中のスレッドグループの一覧が含まれ、TGID で表示されます。TGID の一覧が順位付けされていることや、一意であることは保証されません (つまり、重複したエントリが含まれている可能性があります)。TGID を cgroup の
tasksファイルに書き込むと、そのスレッドグループは cgroup に移動します。 - cgroup.event_control
- cgroup 通知 API とともに、cgroup のステータス変更についての通知を送付できるようにします。
- notify_on_release
- ブール値が含まれ、
1または0でリリースエージェントの実行を有効化または無効化します。notify_on_releaseが有効化されると、cgroup にタスクがなくなった時にカーネルがrelease_agentファイルの内容を実行します (つまり、cgroup のtasksファイルにいくつかの PID が含まれ、それらの PID が削除されてファイルが空の状態となっています)。空の cgroup へのパスは、空の cgroup へのパスは、引数としてリリースエージェントに提供されます。root cgroup 内のnotify_on_releaseパラメーターのデフォルト値は0です。root 以外の cgroups はすべて、親 cgroup からnotify_on_release内の値を継承します。 - release_agent (root cgroup のみに存在)
- 「notify on release」 がトリガーされた時に実行されるコマンドが含まれます。cgroup の全プロセスが空となると、
notify_on_releaseフラグが有効化され、カーネルがrelease_agentファイル内のコマンドを実行して、相対パス(root cgroup に相対) で空の cgroup に引数として提供します。リリースエージェントは、たとえば、空の cgroup を自動的に削除するのに使用することができます。詳しくは、例3.4「空の cgroup の自動削除」 を参照してください。例3.4 空の cgroup の自動削除
以下の手順にしたがって、空になった cgroup を自動的にcpucgroup から削除するように設定します。- 空の
cpucgroups を削除するシェルスクリプトを作成して/usr/local/binなどに配置し、実行できるようにします。~]#
cat /usr/local/bin/remove-empty-cpu-cgroup.sh#!/bin/sh rmdir /cgroup/cpu/$1 ~]#chmod +x /usr/local/bin/remove-empty-cpu-cgroup.sh$1の変数には空になった cgroup への相対パスを記載します。 cpucgroup でnotify_on_releaseフラグを有効にします。~]#
echo 1 > /cgroup/cpu/notify_on_releasecpucgroup には、使用するリリースエージェントを指定します。~]#
echo "/usr/local/bin/remove-empty-cpu-cgroup.sh" > /cgroup/cpu/release_agent- 設定をテストして、空になった cgroup が適切に削除されることを確認します。
cpu]#
pwd; ls/cgroup/cpu cgroup.event_control cgroup.procs cpu.cfs_period_us cpu.cfs_quota_us cpu.rt_period_us cpu.rt_runtime_us cpu.shares cpu.stat libvirt notify_on_release release_agent tasks cpu]#cat notify_on_release1 cpu]#cat release_agent/usr/local/bin/remove-empty-cpu-cgroup.sh cpu]#mkdir blue; lsblue cgroup.event_control cgroup.procs cpu.cfs_period_us cpu.cfs_quota_us cpu.rt_period_us cpu.rt_runtime_us cpu.shares cpu.stat libvirt notify_on_release release_agent tasks cpu]#cat blue/notify_on_release1 cpu]#cgexec -g cpu:blue dd if=/dev/zero of=/dev/null bs=1024k &[1] 8623 cpu]#cat blue/tasks8623 cpu]#kill -9 8623cpu]#lscgroup.event_control cgroup.procs cpu.cfs_period_us cpu.cfs_quota_us cpu.rt_period_us cpu.rt_runtime_us cpu.shares cpu.stat libvirt notify_on_release release_agent tasks

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.