Ubuntu Weekly Topics

Ubuntu 26.10(stonking)の開発; Snapshot 4とカーネル 7.3への切り替え⁠⁠、デスクトップのOOMハンドリング

stonking(Ubuntu 26.10)の開発; Snapshot 4とカーネル 7.3への切り替え、デスクトップのOOMハンドリング

stonkingのSnapshot 4がリリースされました。

通常は月末に登場するSnapshotが唐突にリリースされた印象がありますが、これはSnapshot 3のリリースアナウンスで「We might run a surprise snapshot to test some changes to our machinery as we go live. Otherwise, be prepared for the Stonking Beta on September 24th.」(⁠仕組みがgo liveできたらサプライズでスナップショットを出すかもしれません。間に合わない場合は次は9月24日のBetaです)という形で「なんとなく」匂わせていたもので、つまりは「Snapshotを出しやすくする何かの仕組み」の準備が整った、ということが推定されます。

テスト用途としてはSnapshotそのものはあまり意味がない(Snapshot 3からの経過時間が短すぎる)側面もありつつ、「⁠Snapshotを継続的に出し続ける」という方向の仕組みそのもののテストと思っておくのが良さそうです。

この仕組みはおそらくは既存のISO Trackerの後継となるテスト近代化の成果物に関連するものです。成果物(リリースされるISOイメージ)の種類が増加し続ける一方、それらに対する全体的なテストカバレッジは不足しており、今後もリリースエンジニアリング全体の改善と自動化が行われることになりそうです。

なお現状では26.04からstonkingにアップグレードすると26.04環境でsudo-wsを選んでいても強制的にsudo-rsに切り替わる(つまりRust版sudoがとにかく強制される)という問題もあり、まだまだ完成までには多くの作業が必要です。

またリリースに向けた調整やBetaに向けたフリーズが行われる横で、カーネル7.3の利用が駆け込み的に決定されています。

stonkingでは7.2カーネルの利用が予定されていましたが、7.2がきわめてスムーズにリリースされたこと、そして7.3の開発もきわめて順調に進んでおり、ちょうどstonkingのリリースに間に合いそうなことから7.3の利用を決定した、ということが述べられています。ということで、ここからベータ・Release Candidateあたりでは(場合によってはリリース最初期にも)「⁠7.3-rc1」といった文字列がカーネルに含まれることになります。こうした「BetaやRelease Candidateのタイミングでのチャレンジ」はUbuntu的には「よくあること」です。

また、GNOME環境におけるOOMスコアの調整へ向けた作業が行われています。

Ubuntu Desktop環境ではメモリ不足に陥ると、「⁠デスクトップを構成するGNOMEそのもの」(⁠GNOME Shell)やキーになるプロセス(D-BusやNetwork Managerあたり)が終了してしまい、デスクトップとして機能しなくなる現象が起きることがありました。OOMスコアの調整は、これを抑制するために、「⁠デスクトップを構成するプロセスよりも先に、アプリケーションを優先して停止する」ためのものです。

どのような調整なのかを理解するために、少しだけ詳しく見ていきましょう。

まずLinuxは古典的なUnixが採用する「厳格にメモリを確保する」方式の代わりに、物理メモリ(と設定されたswap)の上限を超えて『メモリを確保』できるように、つまりオーバーコミットを許容するようになっています(ちなみにこの挙動は変更できます⁠)⁠。

これは「プログラムがメモリを確保する」ということと「実際にそのメモリを使い始める」ことのあいだにはギャップがあり、「⁠確保されたものの使われないメモリ」が相応に存在することを前提にしています。

この方式は効率よくメモリを使うことを可能にする一方、やっかいなトレードオフがあります。

オーバーコミットされている以上、アプリケーションがメモリを使い始めた時点、つまりは実際に「利用されるタイミング」で「利用できるメモリもswapもない」という事態が起きうるからです。この状態に突入した場合、Linuxカーネルはまず「なんとかして空いているメモリの断片をかき集める」処理を行います[1]。しかしこの処理でも確保できない場合、「⁠OOM Killer」と呼ばれる処理を実施します。やることは単純で、「⁠過剰にメモリを消費していそうで、今のところ動いていなさそうなプロセス」を探して終了し、その分のメモリを明け渡すというものです。

カーネル側のOOM Killerによって停止されるプロセスはしばしば予想外なものになり、近年ではかなり「予想可能」になりつつありますが、これを調整するために、ユーティリティ的なプロセスとしてプロセスの優先順位を指定したり、といった『チューニング』も必要になります[2]。

この『チューニング』に利用できるものがOOMスコアです。……しかし、この領域は実績や経験則の積み重ねがLinuxデスクトップ界隈(頻繁に元年が到来することでおなじみ)でも足りておらず、今回のチューニングはあくまで「第一歩」という形となっています。

その他のニュース

  • linux-firmwareのHWE(Hardware Enablement)スタックへの対応が検討されています[3]。
  • 新しいUbuntu Wikiが稼働を開始しています。
  • Ubuntu 26.04 LTSにおけるRust版coreutilsに含まれているGNU版coreutilsとの非互換への対応として、rust coreutils 0.10のバックポートパッケージがアップデートの一環として提供されるようになっています。

おすすめ記事

記事・ニュース一覧