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>
<event_file_descriptor> <OOM_control_file_descriptor>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、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 の制御と通知」 を参照してください。