透過的なメモリ オフロード: わずかなコストと電力でより多くのメモリを実現
私たちは、DRAM デバイスのスケーリングの減速や DRAM コストの大幅な変動と相まって、機械学習などの新興アプリケーションのメモリ需要の大幅な増加を目の当たりにしています。 このため、Meta の規模で唯一のメモリ容量ソリューションとして DRAM が法外に高価になってしまいました。
しかし、NVMe 接続のソリッド ステート ドライブ (SSD) などの代替テクノロジは、数分の 1 のコストと電力で DRAM よりも大容量を提供します。 カーネルまたはハイパーバイザー技術を介して、コールド メモリをそのような安価なメモリ テクノロジに透過的にオフロードすることは、DRAM への需要を抑制する有望なアプローチを提供します。 ただし、重要な課題には、堅牢なデータセンター規模のソリューションの開発が含まれます。 このようなソリューションは、多様なワークロードと、圧縮メモリ、SSD、NVM などのさまざまなオフロード デバイスの大きなパフォーマンスの差異に対処できなければなりません。
透過的メモリ オフロード (TMO) は、異種データセンター環境向けの Meta のソリューションです。 CPU、メモリ、I/O 全体のリソース不足によって失われた作業をリアルタイムで測定する、新しい Linux カーネル メカニズムが導入されています。 TMO は、この情報に基づいて、アプリケーションの事前知識がなくても、圧縮メモリや SSD などの異種デバイスにオフロードするメモリ量を自動的に調整します。 これは、デバイスのパフォーマンス特性と、遅いメモリ アクセスに対するアプリケーションの感度に応じて行われます。 TMO は、アプリケーション コンテナだけでなく、インフラストラクチャ レベルの機能を提供するサイドカー コンテナからもオフロードの機会を総合的に特定します。
TMO は 1 年以上実稼働環境で実行されており、当社の広大なデータセンター フリートにある数百万台のサーバーの総メモリの 20 ~ 32 パーセントを節約できました。 私たちは、TMO の OS コンポーネントを Linux カーネルにアップストリームすることに成功しました。
近年、NVMe SSD などの安価な非 DRAM メモリ テクノロジが多数データ センターに導入され、導入されつつあります。 さらに、Compute Express Link (CXL) などの新たな非 DDR メモリ バス テクノロジは、メモリのようなアクセス セマンティクスと DDR に近いパフォーマンスを提供します。 図 1 に示すメモリとストレージの階層は、さまざまなテクノロジがどのように相互に積層されるかを示しています。 これらの傾向が融合することで、これまでは不可能だったメモリ階層化の新たな機会が生まれます。
メモリ階層化を使用すると、アクセス頻度の低いデータが低速メモリに移行されます。 アプリケーション自体、ユーザー空間ライブラリ、カーネル、またはハイパーバイザーが移行プロセスを推進できます。 私たちの TMO 作業は、カーネル主導の移行、またはスワッピングに焦点を当てています。 なぜ? アプリケーションを変更することなく、多くのアプリケーションに透過的に適用できるためです。 概念的には単純ですが、レイテンシの影響を受けやすいデータセンター アプリケーション向けのカーネル駆動のスワップは、ハイパースケールでは困難です。 私たちは、コンテナ化された環境向けの透過的なメモリ オフロード ソリューションである TMO を構築しました。
TMO は次のコンポーネントで構成されます。
サーバーコストの一部として DRAM のコストが上昇していることが、TMO への取り組みの動機となりました。 図 2 は、DRAM、圧縮メモリ、SSD ストレージの相対コストを示しています。 当社では、実稼働ワークロードの平均を表す 3 倍の圧縮率に基づいて、圧縮 DRAM のコストを見積もります。 DRAM のコストは増加し、インフラストラクチャ支出の 33% に達すると予想されます。 以下には示されていませんが、DRAM の消費電力も同様の傾向にあり、サーバー インフラストラクチャの消費電力の 38% に達すると予想されます。 このため、圧縮 DRAM はメモリのオフロードに適しています。
圧縮 DRAM に加えて、当社ではすべての実稼働サーバーに非常に高性能な NVMe SSD を搭載しています。 システム レベルでは、NVMe SSD はサーバー コストの 3% 未満に貢献しています (現行世代のサーバーの圧縮メモリに比べて約 3 倍低い)。 さらに、図 2 は、DRAM と同等の容量で、SSD が世代を超えてサーバー コストの 1% 未満にとどまっていることを示しています。これは、バイトあたりのコストが圧縮メモリよりも約 10 倍低いことです。 これらの傾向により、NVMe SSD は圧縮メモリと比較してコスト効率が大幅に向上します。