ack-koordinator を介してメモリ操作を DSA ハードウェアにオフロードし、CPU 負荷と移行時間を削減します。
仕組み
Data Streaming Accelerator (DSA) は、Intel® Sapphire Rapids プロセッサーのハードウェアアクセラレーターにメモリ操作をオフロードし、メモリバランシングやコンパクションなどのタスクにおける CPU 負荷を軽減するとともに、ack-koordinator の近接メモリアクセスアクセラレーションを向上させます。
DSA を使用すると、100,000~1,000,000 のメモリページへのアクセスが 30%~200% 高速化し、CPU 使用率も比例して低下します。1.7 GB の移行テストでは、DSA は移行時間をベースラインの 31.25% に削減し、帯域幅を 320% に増加させました。
これらの数値はテスト環境での結果です。実際の結果は、ワークロード、インスタンスタイプ、メモリ使用量によって異なります。
前提条件
開始する前に、次の項目を用意してください:
-
DSA 対応の Elastic Compute Service (ECS) インスタンス:複数の NUMA ノードを備えた第 8 世代の SHENLONG ベアメタルインスタンス。「ECS インスタンスタイプ」をご参照ください。推奨タイプ:
-
ecs.ebmc8i.48xlarge -
ecs.c8i.32xlarge -
ecs.g8i.48xlarge
-
-
ack-koordinator 1.2.0-ack1.2 以降:Container Service for Kubernetes (ACK) クラスターにインストールされていること。DSA ドライバーは Alinux 3 を通じて提供されます。「ack-koordinator (旧称:ack-slo-manager)」をご参照ください。
説明ack-koordinator は resource-controller に代わるコンポーネントです。resource-controller がインストールされている場合は、先にアンインストールしてください。「resource-controller のアンインストール」をご参照ください。
-
クラスターに接続された kubectl:「kubectl を使用したクラスターへの接続」をご参照ください。
課金
ack-koordinator は無料でインストールして使用できます。次の項目には料金が発生する場合があります:
-
ワーカーノードのリソース:ack-koordinator は非マネージドコンポーネントとしてワーカーノード上で実行されます。各モジュールのリソースリクエストは、インストール時に設定できます。
-
Prometheus メトリクス:ack-koordinator はリソースのプロファイリングおよびスケジューリングのメトリクスを公開します。Managed Service for Prometheus で有効化した場合、これらは カスタムメトリクスとして料金が発生します。有効化する前に、Managed Service for Prometheus の課金を確認してください。使用量とコストは、可観測性データの量と請求書の照会で監視できます。
DSA アクセラレーションの有効化
ack-koordinator は、DSA ハードウェアを搭載したノードで DSA を自動的に有効化します。追加の設定は不要です。
ノードで DSA ハードウェアを確認するには、次を実行してください:
ls /sys/bus/dsa
ディレクトリが空でない場合、DSA ハードウェアが存在し、アクセラレーションが有効であることを示します。
DSA は近接メモリアクセスアクセラレーションを強化します。最良の結果を得るには、クラスターで 近接メモリアクセスアクセラレーションを有効化してください。
DSA アクセラレーションの検証
ecs.ebmc8i.48xlarge インスタンスを使用して DSA アクセラレーションを検証し、メモリ移行に対する効果を測定します。
操作手順
-
ノードにログオンします。「ECS インスタンスへの接続方法」をご参照ください。
-
プロセッサーに DSA ハードウェアがあることを確認します:
ls /sys/bus/dsaディレクトリが空でない場合は DSA が存在します。エラーが発生するか、またはディレクトリが空の場合は DSA ハードウェアがありません。DSA には第 8 世代の SHENLONG ベアメタルインスタンスが必要です。
-
近接メモリアクセスアクセラレーションを有効にして、メモリ集約型のテストアプリケーションをデプロイします。Redis を推奨します。「例」をご参照ください。
結果の分析
DSA の有無による Redis のリモートメモリ 26.12 GB (100 万ページ) の移行結果:
| シナリオ | 移行時間 (秒) | CPU 使用率 | vCore 秒 |
|---|---|---|---|
| DSA アクセラレーション無効 | 9.649 | 1.000 | 9.649 |
| DSA アクセラレーション有効 | 4.928 | 0.668 | 3.292 |
DSA を使用すると、移行時間はベースラインの 51.1%、CPU 使用率は 66.8%、vCore 秒は 34.1% に低下します。これにより、DSA がメモリ移行を高速化し、CPU 消費量を削減することを確認できます。
次のステップ
DSA は近接メモリアクセスアクセラレーションと組み合わせると最も効果的です。「コンテナ向け近接メモリアクセスアクセラレーションの有効化」をご参照ください。