2.13. 通知 API の使用
cgroup の通知 API により、ユーザースペースアプリケーションは cgroup のステータス変更についての通知を受信することができます。現在、通知 API は Out of Memory (OOM) 制御ファイルのモニタリングのみをサポートしています:
memory.oom_control
。通知ハンドラーを作成するには、以下の手順にしたがって、C プログラムを作成します。
eventfd()
関数を使用して、イベント通知のファイル記述子を作成します。詳しくは、eventfd(2)
の man ページを参照してください。memory.oom_control
ファイルをモニタリングするには、open()
関数を使用して開きます。詳しくはopen(2)
の man ページを参照してください。- モニタリングする
memory.oom_control
ファイルの cgroup のcgroup.event_control
ファイルに以下の引数を書き込むには、write()
関数を使用します。<event_file_descriptor> <OOM_control_file_descriptor>
ここで、cgroup.event_control
ファイルを開くには、event_file_descriptor を使用します。- 適切な
memory.oom_control
ファイルを開くには、OOM_control_file_descriptor を使用します。
ファイルへの書き込みについての詳しい情報は、write(1)
の man ページを参照してください。
上記のプログラムが起動すると、モニタリング対象の cgroup 内の OOM 状態が通知されます。OOM 通知は、root 以外の cgroup でしか機能しない点に注意してください。
memory.oom_control
の調節可能なパラメーターについての詳しい情報は、「memory」 を参照してください。OOM 制御の通知設定についての詳しい情報は、例3.3「OOM の制御と通知」 を参照してください。