Linux 7.3でメモリ管理2大最適化 ゾックスキー問題が解決へ
Linux 7.3向けのメモリ管理パッチでは、zsmallocのロック競合とKSMの逆写像ロック長時間保持という深刻な問題の解決が図られた。
AFFILIATE_PRODUCTS:
Linux 7.3のマージウィンドウにおいて、カーネルメモリ管理サブシステムの刷新が進行中だ。メインテナのAndrew Morton氏が8月19日に送信した「MM」パッチセットは、前回サイクルの920件を上回る1,250件のメールが処理された、極めてボリュームの大きいものとなった。PhoronixのMichael Larabelの報道によれば、この大量のパッチの中からパフォーマンス面で特に注目すべき2つの最適化が確認された。
zsmallocにおけるロック競合の軽減
1つ目のパッチシリーズは、Linuxのzsmallocメモリアロケーターにおけるzs_free()関数のロック競合を軽減するものだ。zsmallocはZswapやzRAMによって圧縮されたRAMページを解放するために使用される。特に、システムがメモリプレッシャーにさらされる場合、AndroidデバイスやZswapを多用するサーバー環境において、zs_free()内のロック競合は深刻なボトルネックとなり得る。
今日のメモリ価格環境と大規模サーバーにおけるZswap/zRAM使用の増加を踏まえると、この競合の解消は効果が大きい。Xiaomi(Xiaomi)のWenchao Hao氏によるパフォーマンス測定では、プロセスが256MBのメモリをマッピング、書き込み、madviseによるページアウトを経て並行アンマッピングを行う一連の操作において、性能向上が確認された。小型のRaspberry Pi 4Bでは最大1.83倍、20コアのIntelシステムでも最大1.4倍の速度改善が見られたという。
KSM逆写像走査の性能問題を解決
2つ目の注目すべきパッチは、カーネルSamepage Merging(KSM)で管理されるページに対する逆写像(rmap)走査を実行する関数rmap_walk_ksm()の性能最適化だ。ZTEのエンジニア陣は、メモリプレッシャー下でKSMの逆写像走査に伴う「深刻な」性能問題を発見した。問題は、多数の無関係な仮想メモリアリーア(VMA)が単一のanon_vmaを共有する場合に最も顕著に発生する。
この問題の深刻さを示す数字がある。パフォーマンス改善の結果、ロック保持時間が500ミリ秒以上から2ミリ秒未満にまで減少した。ZTEのXu Xin氏が以前のパッチシリーズで詳述しているように、最悪の場合、2万のVMAが単一のanon_vmaを共有するベンチマークにおいて、ロック保持時間は705ミリ秒から平均1.44ミリ秒、最大1.67ミリ秒にまで短縮されたという。
リアルユーザーへの影響
このanon_vmaロックは、KSMの逆写像走査だけでなく、ページフォルト、リクレメーション、マイグレーション、コンパクション、mlock、exit_mmap、cgroupアカウントリングなど、複数のカーネル操作において取得される。非効率な逆写像走査に起因する長時間のロック保持は、アプリケーションスレッドを停止させ、レイテンシのスパイク、スループットの低下、さらにはコンテナのタイムアウトを引き起こす可能性がある。興味深いことに、Phoronixの記事は、fork()を伴わないVMA分割(例:mpr)でも問題が発生すると指摘している。
編集部の見解
今回の最適化は、短期的にAndroidデバイスの応答性と、Zswapに依存するクラウドサーバーのスループット向上に直結する見込みだ。特にメモリ価格が高止まりする現在、交換メモリ効率の改善はコスト面でも大きな意味を持つ。特にKSMの問題解決は、コンテナ環境における予測不能なレイテンシ spikesを著しく減少させ、サービス品質(QoS)の安定性に寄与すると評価できる。 長期的には、より高効率的なメモリ管理基盤は、インメモリデータベースや大規模なビッグデータ処理フレームワークなど、メモリ消費量の多いアプリケーションの設計指針にも影響を及ぼす可能性がある。ロック競合の軽減は、並列処理のスケーラビリティを更高次元で引き上げる基盤となるだろう。加えて、本次のパッチサイクルでAndrew Morton氏がGoogleのGemini AIを要約作成に利用したという報告は、巨大なOSSプロジェクトにおける保守作業の負荷軽減にAIが如何に活用され始めているかを象徴している。 こうした基盤の進化は、ertainly、上位層のアプリケーション開発者にとって直接関心事ではないかもしれない。
参考
- 「Two Very Exciting Memory Management Optimizations Going Into Linux 7.3」, by Michael Larabel — Phoronix, 2026-08-19T20:31:26.000Z (ARR)
- 元記事URL: https://www.phoronix.com/news/Linux-7.3-MM
コメント