公開されたのは10周年記念である2015年11月11日です。
今年はずっとOOM killer との死闘を繰り広げていました。
簡単にまとめると、
- Linux カーネルのメモリアロケータは経験則に基づくヒューリスティックの塊。
- そのため、カーネル開発者が想定していなかった負荷が掛かった場合、 OOM killer が発動しないまま無限ループに陥る状況が簡単に発生する。
- つまり、 OOM killer が発動できたら、それはラッキーである証拠。 OOM killer が発動できなかったら、諦めるしかない。
- そして、無限ループに陥っている可能性を知らせる機能は存在しない。そのため、何が発生しているのかを観測できず、メモリ管理に起因した問題として修正することもできない。
- その結果、「システムがハングアップしたらメモリ管理を疑え!?」という諺が誕生しても不思議ではない。
- Linux 4.6 に向けて、 OOM 状態の検知と OOM killer の改善に本腰を入れようとしている。しかし、バックポートについては全然考慮されていないため、既存システムへの適用は絶望的である。
という状況です。 Linux の利用者も、トラブル対応を行うサポートセンタの人たちも、解けないパズルで悩むことが無いように、 RHEL 7.2 のリリースまでに決着をつけたかったのですが、来年へと持ち越しとなりました。