cgroup の通知APIcgroup の memory サブシテムを利用すると、登録したプロセスがメモリを使いすぎた際、oom-killer が動作し、対象プロセスを kill することができる(デフォルト動作)。 kill されたことは syslog など見ればわかるが、cgroup には通知APIといった機能があり、アプリ側で oom-killer が動作した際のイベントを受け取ることが可能なので、この機能を試してみる。 通知を受け取るための流れ eventfd を生成する 生成した eventfdとmemory.oom_controlのファイルディスクリプタを、cgroup.event_control に書き込む イベントを受け取るアプリ側で、生成した eventfd をread()する cgroup に登録したプロセスが制限以上のメモリを使用すると oom-killer が動作し