Google Kubernetes Engine でのパフォーマンス テスト

複数の GKE クライアントから Google Kubernetes Engine(GKE)ワークロードの読み取り / 書き込みパフォーマンスをテストするには、IOR ベンチマーク ツールを使用します。次の手順では、クライアントの設定を自動化し、Kubernetes Pod 間のパスワードなしの SSH で mpirun を使用して IOR を使用し、集約 I/O をテストする方法について説明します。

前提条件

  • Managed Lustre インスタンスがすでにプロビジョニングされている。

  • Google Artifact Registry または Container Registry に push するように構成され、認証されたローカル Docker 環境(認証方法をご覧ください)。

  • ネットワークの mtu 値が 8896 に設定されていることを確認します。

GKE クラスタを作成する

パフォーマンスをテストするには、Managed Lustre CSI ドライバが有効になっている GKE クラスタが必要です。高パフォーマンス ストレージ ワークロードの場合は、コンピューティング最適化マシン ファミリー(c2c3 など)と TIER_1 ネットワーキングを使用して GKE ノードプールを構成します。

次のコマンドを実行して、パフォーマンス テスト用に最適化された Standard GKE クラスタを作成します。

gcloud container clusters create CLUSTER_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --addons=LustreCsiDriver \
    --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
    --network=NETWORK \
    --num-nodes=NUM_NODES
  • ZONENETWORK は、特定のデプロイの値に置き換えます。クラスタは、Managed Lustre インスタンスと同じ VPC ネットワークに存在する必要があります。

  • MACHINE_TYPE を選択します。最適なスループットを実現するマシンタイプの選択については、パフォーマンスに関する考慮事項をご覧ください。

  • マシンタイプが TIER_1 ネットワーキングをサポートしていない場合は、コマンドから --network-performance-configs 行を削除します。

  • NUM_NODES を指定します。ファイル システムを飽和させるには、クラスタの合計ネットワーク容量がファイル システムのプロビジョニングされたスループットを約 20% 超える必要があります。

    Tier 1 ネットワーキングが有効になっているマシンでは、VM ファミリーと CPU 数に応じて、単一ノードで 25 Gbps ~ 200 Gbps(約 3,000 ~ 25,000 MBps)をプッシュできます。標準インスタンスの場合、下り(外向き)は通常、vCPU あたり約 2 Gbps に制限されます。

    たとえば、Managed Lustre インスタンスの容量で理論上のスループットが 100,000 MBps になる場合、それを飽和させるには、クライアントの下り(外向き)の合計が 120,000 MBps(100,000 * 1.2)必要です。

    • 標準インスタンスの場合: 各ノードの公開下り(外向き)が 2,000 MBps の場合は、少なくとも 60 個のノード(120,000 / 2,000)をプロビジョニングする必要があります。
    • Tier 1 ネットワーキングの場合: 各ノードの公開下り(外向き)が 10,000 Mbps(約 80 Gbps)の場合、少なくとも 12 個のノード(120,000 / 10,000)をプロビジョニングする必要があります。

IOR Docker イメージを作成する

OpenMPI と IOR がインストールされたコンテナ イメージをビルドします。パフォーマンスを向上させるため、非同期 I/O(AIO)のサポートを使用して IOR をコンパイルします。

  1. ローカルに Dockerfile という名前のファイルを作成します。

    FROM ubuntu:22.04
    
    # Prevent interactive prompts during installation
    ENV DEBIAN_FRONTEND=noninteractive
    
    # Install dependencies, SSH, and required Autotools packages
    RUN apt-get update && apt-get install