開発

Linux 7.3でメモリ管理2大最適化 ゾックスキー問題が解決へ

Linux 7.3向けのメモリ管理パッチでは、zsmallocのロック競合とKSMの逆写像ロック長時間保持という深刻な問題の解決が図られた。

6分で読める SINGULISM 編集チームが確認・編集

Linux 7.3でメモリ管理2大最適化 ゾックスキー問題が解決へ
Photo by Franck V. on Unsplash

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、上位層のアプリケーション開発者にとって直接関心事ではないかもしれない。

参考

出典: Phoronix

コメント

← トップへ戻る