人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

virtualingを使ってプロセスのメモリ使用量上限値をOoM-Killerのタイミングで自動拡張してみた

virtualingとは、わりとセキュアでCPUやメモリ・IOといったリソースの制御が可能なプロセス実行環境上で、設定や構成を変える事なくミドルウェアのようなプロセスを動作させることができるツールです。実装はmrubyです。

github.com

hb.matsumoto-r.jp

リソース制御なので、例えばプロセスのメモリ使用量の上限を制限していた場合に、その制限を超えると従来通りOoM-Killerが走るわけですが、virtualingの特徴的な機能として、そのイベントを自動で検知し任意のRubyブロックをコールバックする機能があります。

それを利用して、今回はOoM-Killer判定が下されたイベントを検知したら、メモリ制限値を自動で拡張していくような処理を試してみました。

続きを読む