Azure VM ネットワーク性能測定
はじめに
Azure VMをいくつかの配置パターンで配置し、それぞれのVM間のネットワーク性能を測定してみた。
今回は測定ツールとしてqperfを使用。
【測定環境】(サーバー/クライアント双方)
VMイメージ:Red Hat Enterprise Linux 8.6 (LVM) - x64 Gen2
VMサイズ:Standard_D2s_v5
OSディスク:Premium SSD
ネットワーク:高速ネットワークを有効
VM作成後、測定ツールのqperfのインストールとfirewalldを停止。
測定コマンドは以下の通り。
# スループット
$ qperf -vs -t 10 --use_bits_per_sec "Server_VM_IP" tcp_bw
# 遅延
$ qperf -vs -t 10 "Server_VM_IP" tcp_lat
同一AZ内で測定
東日本リージョンの同一可用性ゾーンに作成したVM間で測定。
- スループット(Gbps)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
12.3 | 12.0 | 12.1 | 12.133 |
- 遅延(us)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
22.2 | 24.8 | 23.5 | 23.5 |
同一リージョンの別AZ間で測定
東日本リージョンの別可用性ゾーンに作成したVM間で測定。
AZ1 - AZ2
- スループット(Gbps)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
12.0 | 12.2 | 12.2 | 12.133 |
- 遅延(us)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
318 | 316 | 324 | 319.33 |
AZ1 - AZ3
- スループット(Gbps)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
8.87 | 9.18 | 9.24 | 9.09 |
- 遅延(us)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
519 | 530 | 528 | 525.66 |
AZ2 - AZ3
- スループット(Gbps)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
9.8 | 10.0 | 11.1 | 10.3 |
- 遅延(us)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
426 | 459 | 426 | 437 |
近接配置グループのVM間で測定
近接配置グループを使用して作成したVM間で測定。
- スループット(Gbps)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
12.3 | 12.3 | 12.3 | 12.3 |
- 遅延(us)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
26.5 | 25.2 | 24.8 | 25.5 |
リージョン間で測定
東日本リージョンと西日本リージョンに作成したVM間で測定。
VnetピアリングしプライベートIPで測定。
他の表と単位が違うので注意。
- スループット(Mbps)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
942 | 974 | 972 | 962.66 |
- 遅延(ms)
1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|
4.23 | 4.07 | 3.94 | 4.08 |
まとめ、考察
条件によるのかもしれないが、近接配置グループを使用した場合と
単に同一AZにVMを作成した場合でほとんど差はみられなかった。
AZ間については、「ラウンドトリップ待ち時間が 2 ミリ秒未満」という可用性ゾーンの要件を
満たしていることは確認できた。ただし、ゾーンの選び方によって0.2ms程度の差異が出るという点はゾーンを選ぶうえで意識しておくべきかもしれない。
リージョン間の結果については、東西間でデータ転送することは多いと思うので、
その参考情報として取得した。
結果は記載していないが、東日本リージョン側のAZを変えて試したが、
試行回数による誤差の範囲内となったため、割愛している。
追記:可用性ゾーンのマッピング
REST APIを使用して可用性ゾーンの論理マッピングを確認可能。
今回検証で使用したサブスクリプションは偶然ではあるが番号が一致していた。
※サブスクリプションIDは0に置換。
Azure REST API | Subscriptions - Check Zone Peers
{
"subscriptionId": "00000000-0000-0000-0000-00000000000000",
"location": "japaneast",
"availabilityZonePeers": [
{
"availabilityZone": "1",
"peers": [
{
"subscriptionId": "00000000-0000-0000-0000-00000000000000",
"availabilityZone": "1"
}
]
},
{
"availabilityZone": "2",
"peers": [
{
"subscriptionId": "00000000-0000-0000-0000-00000000000000",
"availabilityZone": "2"
}
]
},
{
"availabilityZone": "3",
"peers": [
{
"subscriptionId": "00000000-0000-0000-0000-00000000000000",
"availabilityZone": "3"
}
]
}
]
}
Discussion