
Linux Mint 21 は systemd-oomd 非搭載に 34
ストーリー by nagazou
非搭載 部門より
非搭載 部門より
headless 曰く、
まもなくベータ版提供が始まる Linux Mint 21 では、systemd-oomd を標準搭載しないそうだ (The Linux Mint Blog の記事、 Phoronix の記事、 Neowin の記事)。
systemd-oomd (out-of-memory daemon) はメモリー不足時にプロセスを終了して空きメモリーを確保するシステムサービスだ。Linux Mint の上流である Ubuntu 22.04 LTS は標準で systemd-oomd を使用するが、メモリー使用量の多いアプリが予期せず終了してしまうといった問題が報告されている。そのため、Ubuntu が oomd の動作を調整したのに対し、Linux Mint プロジェクトでは問題を調査した結果、Linux Mint 21 に搭載しないことを決めたとのことだ。
Re:アロケートに失敗したら適切にエラー処理をする (スコア:1)
(昔のこと)
Linuxカーネルの場合、メモリ不足でプロセスが死ぬのは、メモリを確保した時点ではなくて、ホントにそのメモリに書き込んだときだったのね。
かなり端折って言えば、mallocは常に成功(overcommit)、確保したメモリに初めて書こうとした時点でカーネルが実際にメモリを確保、その時点 でメモリ不足になっていたら例外発生ってな感じ。
これじゃあまともなアプリは作れないってんで、overcommit=0にする設定もあったんだけど、デフォルト0じゃなかったのね。
この仕掛けだと、メモリ不足になったのは大食いのアプリがあったからなんだろうけど、killされるプロセスはメモリ不足に陥ったときにたまたま(メモリ確保を伴う)メモリ書き込みをしたプロセスなのね。それじゃあ理不尽でしょ。
(今のこと)
しらん。