2025年12月、東京で開催された「Linux Plumbers Conference 2025(LPC 2025)」において、テクノロジー業界の常識を覆す極めて興味深い事例が報告された。巨大SNSプラットフォームを運営するMeta(旧Facebook)が、Valve社の携帯ゲーム機「Steam Deck」のために開発されたLinuxスケジューラー技術を、自社の巨大なサーバーフリートの「デフォルト」として採用し、運用しているというのだ。

一見すると、バッテリー駆動の携帯ゲーム機と、データセンターで稼働するハイパースケールサーバーは対極にある存在だ。しかし、この両者を繋いだのは、Linuxカーネルの革新的な機能「sched_ext(Extensible Scheduler Class)」と、効率性を極限まで追求するエンジニアたちの執念であった。本稿では、MetaのエンジニアであるDavid Dai氏とRyan Newton氏による発表「How do we make a Steam Deck scheduler work on large servers」を基に、この技術転用の裏にある深い洞察と、現代のコンピューティングが直面する課題を見ていきたい。

AD

「sched_ext」と「LAVD」:ゲーミングが生んだ革命

この物語の主役は、SCX_LAVD(Latency-Aware Virtual Deadline)と呼ばれるスケジューラーだ。これを理解するには、まずその基盤となる技術「sched_ext」を知る必要がある。

カーネルの聖域を開放した「sched_ext」

従来、Linuxのプロセススケジューラー(CPUの時間をどの処理に割り当てるかを決める機能)はカーネルの深部にハードコードされており、変更には高度なスキルと再コンパイルが必要だった。しかし、sched_extの登場により、eBPF(extended Berkeley Packet Filter)を用いて、ユーザー空間から安全かつ動的にスケジューラープログラムをロードすることが可能になった。これにより、特定のワークロードに特化したスケジューリングロジックを容易に実装できるようになったのである。

Steam Deckのための「LAVD」

Valve社とIgalia社が開発したLAVDは、本来Steam Deckでのゲーム体験を最適化するために設計された。ゲームにおいて最も重要なのは「フレームレートの安定性」と「低遅延(レイテンシ)」である。LAVDは「仮想デッドライン」という概念を用い、遅延に敏感なタスク(ゲームのレンダリング処理など)を優先的に処理することで、スムーズな描画を実現する。

興味深いのは、この「低遅延」と「高レスポンス」という特性が、Metaが抱えるWebサーバーやキャッシュサーバー、メッセージングアプリの要件と奇妙なほど一致したという点だ。

Metaが直面した「スケール」の壁と解決策

Metaはこれまで、特定のサービス向けに高度にチューニングされたレイヤード構成(SCX_LAYERED)を使用してきたが、これらはパフォーマンスが高い反面、維持管理が困難であった。そこで彼らは、汎用的でありながら高性能な「デフォルトスケジューラー」としてLAVDに白羽の矢を立てた。

しかし、数個のCPUコアしか持たないSteam Deckと、100以上のコアを持つMetaの巨大サーバーでは、ハードウェアのトポロジー(構成)が根本的に異なる。Metaのエンジニアたちは、LAVDをサーバーへ適応させる過程で、以下の4つの主要な課題に直面し、それを解決していった。

1. 巨大なCCX(Core Complex)によるロック競合問題

近年のサーバー向けCPU(特にAMD EPYC等)は、コア数が増大の一途をたどっている。Metaのフリートには、単一のCCX(またはLLCドメイン)内に50以上のCPUコアが存在するモンスターマシンが含まれていた。

  • 課題: オリジナルのLAVDは、同一CCX内のコアが単一の「DSQ(Dispatch Queue)」とロック(排他制御)を共有する設計だった。50個ものCPUが一つのロックを奪い合うことで激しい競合が発生し、パフォーマンスが劣化。さらに、タスクが頻繁にコア間を移動しすぎるため、L1/L2キャッシュのヒット率が低下していた。
  • 解決策: 「仮想LLCドメイン(Virtual LLC Domains)」の導入。
    Metaは物理的な巨大CCXを、論理的に小さな「仮想ドメイン」に分割した。これにより、各ドメイン内のコア数を減らし、ロック競合を緩和。同時に、タスクの移動範囲を制限することでキャッシュの局所性(Cache Locality)を向上させた。
    実験の結果、ドメインあたりのコア数を減らしすぎると(例:2コア)、負荷分散がうまくいかず(Work Conservationの喪失)、レイテンシが悪化することが判明。キャッシュ効率と負荷分散のバランスが取れる「中間点」を見つけ出すチューニングが行われた。

2. ロードバランシングの最適化

  • 課題: 物理的なCCX境界を越えてタスクを「盗む(Work Stealing)」処理は、メモリバスへのアクセスを伴うためコストが高い。
  • 解決策: 「階層型タスクスティーリング(Tiered Task Stealing)」の実装。
    仮想ドメイン内でのタスク移動は積極的に行い、物理境界を越える移動は頻度を下げることで、全体の処理効率と負荷分散のバランスを最適化した。

3. WhatsAppを支える「Erlang」と固定タスクのジレンマ

Metaの主要サービスであるWhatsAppは、プログラミング言語Erlangで構築されていることで有名だ。Erlangのランタイムやその他のシステムでは、特定のCPUコアにスレッドを固定する「Pinned Task」が多用される。

  • 課題: LAVDの共有キュー(Shared DSQ)にPinned Taskが入ると、そのタスクを実行できる唯一のコア以外のCPUにとっては「見えてはいるが実行できないゴミ」となり、無駄な競合を生む。さらに、sched_extのタイムスライス(処理の割り当て時間)が長めに設定されていたため、サブミリ秒単位の応答を期待するErlangのアクターモデルにおいて、レイテンシ遅延が発生した。
  • 解決策:
    1. 専用キューの分離: Pinned Taskを共有キューから排除し、各CPU専用の「Per-CPU DSQ」に投入するように変更。
    2. 動的タイムスライス調整: Pinned Taskが存在する場合に限り、タイムスライスを動的に短縮する機能(--pinned-slice-us)を追加。これにより、Erlangのような超低遅延ワークロードへの応答性を劇的に改善した。

4. キャッシュサービスを襲う「IRQストーム」

Metaの大規模キャッシュサービス(Memcached等)は、秒間数百万リクエストを処理する。

  • 課題: ネットワークカードからの割り込み(IRQ/SoftIRQ)処理だけで、CPU時間の25%以上が消費されるケースがあった。従来のスケジューラーは、この「割り込みによって奪われた時間」を正しく認識できず、ユーザー空間のタスクがフルに時間を使っていると誤認して課金(Quota消費)していた。
  • 解決策: IRQアカウンティングの修正とバランシング
    IRQ処理にかかった時間をタスクのクォータから差し引くロジックを導入。さらに、レイテンシに敏感なタスクを、大量の割り込み処理(IRQストーム)が発生しているコアから避難させる新しいロードバランシングロジックを実験的に導入している。

AD

構造的変化の示唆:BtoC技術がエンタープライズを救う

このニュースの真の価値は、「MetaがLinuxのバグを直した」という表面的な事実だけではない。ここには、現代のコンピューティング環境における重要なパラダイムシフトが示されている。

1. 「汎用」から「プログラマブル」なカーネルへ

sched_extの成功は、Linuxカーネルがモノリシックな一枚岩から、目的に応じて柔軟に変形可能なプラットフォームへと進化していることを証明した。Metaのようなハイパースケール企業は、もはやカーネルのアップストリームの変更を待つ必要はない。eBPFを使って、自社のワークロードに最適なスケジューラーを「アプリのように」デプロイできる時代が到来したのだ。

2. コンシューマー技術とサーバー技術の境界消失

「ゲーム」と「サーバー処理」は、どちらも「スループット(処理量)」と「レイテンシ(応答速度)」のトレードオフの中で戦っている。Steam Deckのような制約の多いデバイスで磨かれた「極限の効率化」技術が、リソースが潤沢に見えるデータセンターにおいても有効であるという事実は、技術の適用範囲に境界線がないことを示している。特に、マイクロ秒単位の遅延が収益に直結する高頻度取引(HFT)やリアルタイムAI推論の分野でも、LAVDのようなアプローチが注目されるだろう。

3. オープンソースエコシステムの勝利

Valveがゲームのために投資した技術が、巡り巡って世界最大のSNSインフラを支えることになった。これはオープンソース開発モデルの理想的な勝利と言える。Metaが行った大規模サーバー向けの修正(LAVDへのパッチ)は、再びコミュニティに還元され、将来的には他の企業や、あるいはSteam Deck自体のパフォーマンス向上にも寄与する可能性がある。

2026年のインフラ戦略への布石

MetaによるLAVDの採用は、単なる実験ではない。彼らはこれを「新しいデフォルトスケジューラー(Meta’s New Default Scheduler)」と呼んでおり、本番環境での全面的な運用を進めている。

2026年に向けて、ITインフラストラクチャは「ハードウェアを買ってOSを入れる」だけの時代から、「ワークロードに合わせてOSの挙動(スケジューリング)を再プログラミングする」時代へと突入する。その先鞭をつけたのが、まさか携帯ゲーム機であったとは、テクノロジーの歴史における痛快な皮肉であり、同時に希望でもあると言えるだろう。


Sources