このドキュメントでは、2 つの VM を作成し、トラフィックを前後にストリーミングしてネットワーク パフォーマンスを監視することにより、VM ごとの Tier_1 ネットワーキング パフォーマンスをテストする方法について説明します。この機能を利用するには、Google Virtual NIC(gVNIC)をサポートするオペレーティング システムで VM を作成する必要があります。VM ごとの Tier_1 ネットワーキング パフォーマンスにはより大きな VM サイズが必要なため、VM を作成するのに十分な CPU 割り当てがあることを確認してください。
準備
- gVNIC をサポートする公開イメージを使用していることを確認するか、プロジェクトでカスタム イメージを作成します。
iperf
パフォーマンス テストを可能にするために、ポート TCP:5001 または別のポートでの上り(内向き)を許可する VPC ファイアウォール ルールを作成したことを確認します。- ベンチマークを実行するには、iPerf のバージョン 3 ではなくバージョン 2 を使用します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
イメージを作成するには、gcloud compute images create コマンドを使用します。
gcloud compute images create IMAGE_NAME \ --project=PROJECT_ID \ --source-image-family=SOURCE_IMAGE_FAMILY \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=GVNIC
次のように置き換えます。
- PROJECT_ID: プロジェクトの名前。
- IMAGE_NAME: 作成するイメージの名前。
- SOURCE_IMAGE_FAMILY: 公開イメージの必須バージョン。このテストでは、
ubuntu-2004-lts
を使用します。 - SOURCE_IMAGE_PROJECT: ソースイメージを含むプロジェクトの名前。このテストでは、
ubuntu-os-cloud
を使用します。
例
gcloud compute images create benchmark-image-test \ --project=my-project \ --source-image-family=ubuntu-2004-lts \ --source-image-project=ubuntu-os-cloud \ --guest-os-features=GVNIC
最大 MTU 設定を使用する自動モード VPC ネットワークを作成します。
gcloud compute networks create NETWORK_NAME \ --project=PROJECT_ID \ --subnet-mode=AUTO --mtu=8896
次のように置き換えます。
- PROJECT_ID: プロジェクトの名前。
- NETWORK_NAME: ネットワークの名前。
同一のインスタンスを 2 つ作成します。
gcloud compute instances create \ VM_NAME_1 VM_NAME_2 \ --project=PROJECT_ID \ --zone=ZONE \ --machine-type=n2-standard-64 \ --image=projects/PROJECT_NAME/global/images/IMAGE_NAME \ --network=NETWORK_NAME \ --network-interface=nic-type=GVNIC \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1
次のように置き換えます。
- VM_NAME_1、VM_NAME_2: 作成する VM インスタンスの名前。
- PROJECT_ID: プロジェクト名。
- ZONE: VM のゾーン。両方の VM は同じゾーン内に配置されている必要があります。
- PROJECT_NAME/global/images/IMAGE_NAME: プロジェクト名とイメージ名。
- NETWORK_NAME: 最大 MTU 設定で構成したネットワークの名前。
ターミナル ウィンドウで、次のコマンドを実行します。
/sbin/ifconfig | grep mtu
MTU 8896 が出力されます。
ens4: flags=4163 mtu 8896 lo: flags=73 mtu 65536
- VM_NAME_1: 表示する VM インスタンスの名前。
- VM_NAME_2: 表示する VM インスタンスの名前。
- PROJECT_ID: プロジェクト名。
- ZONE: VM のゾーン。両方の VM は同じゾーン内に配置されている必要があります。
まだ行っていない場合は、ベンチマーク用の VM の設定の手順を行います。
両方の VM を実行したら、SSH を使用していずれかの VM に接続します。
gcloud compute ssh VM_NAME_1 \ --project=PROJECT_ID
次のように置き換えます。
- VM_NAME_1: 最初の VM の名前。
- PROJECT_ID: プロジェクト名。
最初の VM で次の手順を行います。
iperf
をインストールします。sudo apt-get update && sudo apt-get install iperf
この VM の内部 IP アドレスを取得します。後で使用できるように、内部 IP アドレスをメモします。
ip a
iPerf サーバーを起動します。
iperf -s
これにより、ベンチマークを実行するために接続をリッスンするサーバーが起動します。テスト中は iPerf サーバーを稼働したままにします。
別のクライアント ターミナルで、SSH を使用して 2 番目の VM に接続します。
gcloud compute ssh VM_NAME_2 \ --project=PROJECT_ID
次のように置き換えます。
- VM_NAME_2: 2 番目の VM の名前。
- PROJECT_ID: プロジェクト名。
2 番目の VM で次の手順を行います。
iPerf をインストールします。
sudo apt-get update && sudo apt-get install iperf
iperf テストを実行し、最初の VM の IP アドレスをターゲットとして指定します。
iperf -t 30 -c internal_ip_of_instance_1 -P 16
30 秒のテストが実行されます。iPerf が他の VM に到達できない場合は、VM 上、または Google Cloud コンソールでネットワークやファイアウォール設定の調整が必要になることがあります。
結果は次の例のようになります。Tier_1 ネットワーキングが有効になっている
n2-standard-64
の下り(外向き)帯域幅の上限が 75 Gbps で、デフォルトの下り(外向き)帯域幅の上限である 32 Gbps を超えています。------------------------------------------------------------ Client connecting to 10.128.0.10, TCP port 5001 TCP window size: 1.59 MByte (default) ------------------------------------------------------------ [ 12] local 10.128.0.11 port 57722 connected with 10.128.0.10 port 5001 [ 11] local 10.128.0.11 port 57720 connected with 10.128.0.10 port 5001 [ 16] local 10.128.0.11 port 57730 connected with 10.128.0.10 port 5001 [ 6] local 10.128.0.11 port 57710 connected with 10.128.0.10 port 5001 [ 13] local 10.128.0.11 port 57724 connected with 10.128.0.10 port 5001 [ 8] local 10.128.0.11 port 57712 connected with 10.128.0.10 port 5001 [ 9] local 10.128.0.11 port 57716 connected with 10.128.0.10 port 5001 [ 14] local 10.128.0.11 port 57726 connected with 10.128.0.10 port 5001 [ 15] local 10.128.0.11 port 57728 connected with 10.128.0.10 port 5001 [ 10] local 10.128.0.11 port 57718 connected with 10.128.0.10 port 5001 [ 4] local 10.128.0.11 port 57706 connected with 10.128.0.10 port 5001 [ 5] local 10.128.0.11 port 57708 connected with 10.128.0.10 port 5001 [ 3] local 10.128.0.11 port 57704 connected with 10.128.0.10 port 5001 [ 17] local 10.128.0.11 port 57732 connected with 10.128.0.10 port 5001 [ 7] local 10.128.0.11 port 57714 connected with 10.128.0.10 port 5001 [ 18] local 10.128.0.11 port 57734 connected with 10.128.0.10 port 5001 [ ID] Interval Transfer Bandwidth [ 12] 0.0-30.0 sec 7.63 GBytes 2.19 Gbits/sec [ 11] 0.0-30.0 sec 17.7 GBytes 5.07 Gbits/sec [ 16] 0.0-30.0 sec 9.15 GBytes 2.62 Gbits/sec [ 6] 0.0-30.0 sec 43.8 GBytes 12.6 Gbits/sec [ 13] 0.0-30.0 sec 23.6 GBytes 6.76 Gbits/sec [ 8] 0.0-30.0 sec 13.3 GBytes 3.80 Gbits/sec [ 9] 0.0-30.0 sec 9.29 GBytes 2.66 Gbits/sec [ 14] 0.0-30.0 sec 19.6 GBytes 5.62 Gbits/sec [ 15] 0.0-30.0 sec 12.5 GBytes 3.58 Gbits/sec [ 10] 0.0-30.0 sec 11.1 GBytes 3.19 Gbits/sec [ 4] 0.0-30.0 sec 19.0 GBytes 5.43 Gbits/sec [ 5] 0.0-30.0 sec 7.32 GBytes 2.10 Gbits/sec [ 3] 0.0-30.0 sec 8.78 GBytes 2.51 Gbits/sec [ 17] 0.0-30.0 sec 17.5 GBytes 5.02 Gbits/sec [ 7] 0.0-30.0 sec 33.4 GBytes 9.57 Gbits/sec [ 18] 0.0-30.0 sec 7.64 GBytes 2.19 Gbits/sec [SUM] 0.0-30.0 sec 261 GBytes 74.9 Gbits/sec
ベンチマーク テスト用に作成したインスタンスを削除するには、
gcloud compute instances delete
コマンドを使用します。gcloud compute instances delete \ VM_NAME_1 VM_NAME_2 \ --project=PROJECT_ID \ --zone=ZONE
次のように置き換えます。
- VM_NAME_1、VM_NAME_2: 削除する 2 つの VM インスタンスの名前。
- PROJECT_ID: プロジェクト名。
- ZONE: VM のゾーン。両方の VM は同じゾーンに存在する必要があります。
ベンチマーク テスト用に作成したネットワークを削除するには、
gcloud compute networks delete
コマンドを使用します。gcloud compute networks delete NETWORK_NAME \ --project=PROJECT_ID
次のように置き換えます。
- NETWORK_NAME: 削除するネットワークの名前。
- PROJECT_ID: プロジェクト名。
ベンチマーク テスト用に作成したイメージを削除するには、
gcloud compute images delete
コマンドを使用します。gcloud compute images delete IMAGE_NAME \ --project=PROJECT_ID
次のように置き換えます。
- IMAGE_NAME: 削除するイメージの名前。
- PROJECT_ID: プロジェクト名。
- Tier_1 ネットワーキングの料金について確認する。
- その他のマシンタイプの帯域幅階層を確認する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
ベンチマーク用の VM の設定
VM ごとの Tier_1 ネットワーキング パフォーマンスを有効にした 2 つの
n2-standard-64
vCPU マシンを作成し、最も大きな最大伝送単位(MTU)に設定します。これにより、VM は最大 75 Gbps の最大下り(外向き)帯域幅(内部 IP を使用)を実現できます。gcloud
ベンチマークの実行
2 つの VM は同じゾーンと同じ VPC ネットワーク上に存在する必要があります。ベンチマークでは、これらの 2 つの VM が VPC ネットワーク パスの双方向テストを実行します。
MTU の設定を確認する
いずれかの VM のゲスト OS で
ifconfig
を使用して、Virtual Private Cloud(VPC)ネットワークに最大 MTU 設定が構成されていることを確認します。VM 構成を確認する
仮想マシンのプロパティを調べて、仮想マシンで Tier_1 ネットワーキングが有効になっていることを確認します。
gcloud
インスタンスを表示するには、gcloud compute instances describe コマンドを使用します。
gcloud compute instances describe VM_NAME_1 \ --project=PROJECT_ID \ --zone=ZONE \ --format="text(networkPerformanceConfig)"
gcloud compute instances describe VM_NAME_2 \ --project=PROJECT_ID \ --zone=ZONE \ --format="text(networkPerformanceConfig)"
次のように置き換えます。
レスポンスに次のように表示されます。
networkPerformanceConfig.totalEgressBandwidthTier: TIER_1
Debian ベースのシステムで iPerf を使用してベンチマークを実行する
gcloud
ベンチマーク テスト後にリソースを削除する
イメージと追加の VM に対する課金が行われないように、ベンチマーク テスト中に作成したリソースを削除します。
gcloud
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-