2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure 仮想マシンと外部の端末とのスループットを測定する

Posted at

#やりたかったこと
以下の条件のもと、Azure 上の Ubuntu 18.04 LTS の仮想マシンと、外部の端末(今回は自宅のパソコン)のスループットを計りたい。

  • 出来るだけ Firewall に穴をあけたくない。
  • 自宅のネットワークのルーターの静的 NAT の設定を変えたくない。
  • IP 制限のような形はとりたくない。

##ちょっとハマったところ
Azure の NSG の設定と、iPerf3 の通信の方向について。

#手順
##まずは Azure の仮想マシンを立てる
手順については割愛。下記ドキュメントを参照ください。
クイック スタート:Azure portal で Linux 仮想マシンを作成する

##ネットワークセキュリティグループの設定
Azure Portal から iPerf3 が使うポートで通信が可能になるような設定を行う。

コメント 2020-05-15 120845.png

  1. まずは「ネットワーク」タブを開く
  2. 「受信ポートの規則を追加する」ボタンを押して、受信ポートの規則を追加。
  3. 設定項目としては以下の通り。
    • ソース : Any
    • ソースポート範囲 : *
    • 宛先 : Any
    • 宛先ポート範囲 : 5201
    • プロトコル : Any
    • アクション : 許可
    • 優先度 : 任意で設定
    • 名前 : 任意で設定

##iPerf3 をインストール
おなじみの apt でどうぞ。サーバー側、クライアント側、両方にセットアップする必要があります。

sudo apt install iperf3

クライアント側が Windows 10 端末だとしたら、WSL を使うのが便利だと思います。
Windows 10 用 Windows Subsystem for Linux のインストール ガイド
※近々、WSL2 が正式リリースされる見込みなので、この辺の手順は変わるかもしれません。

##測定!
Azure の VM 側では iPerf3 をサーバーモードで実行します。

iperf3 -s

画面表示に Port 5201 で待ち受けてる旨表示されれば準備完了。
こんな感じ。

-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

そしたら、例えばクライアント側で以下のコマンドを実行。
一番重要なのは、"-R" オプションで、これをつけ忘れると、Azure VM 側からデータを送ろうとして NSG の設定や、自宅のファイアウォールやルーターの NAT に阻まれて失敗します。

iperf3 -c <AzureVM の Global IP アドレス> -R -t 60 -P 5 --logfile ログファイル名

上記のコマンドの場合、TCP のスループットを 60 秒間、5 スレッドで測定、となっているはず。
細かい iPerf3 の使い方については、ネットを見れば色々あると思うので、自分の好きな設定でやってください。

##参考までに測定結果抜粋
家の 300-500Mbps くらい出る光回線で TCP を使って転送速度を計ってみた結果こんな感じ。
Azure VM のサイズも "Standard D2s v3 (2 vcpu 数、8 GiB メモリ)" ということでそこまで大きくないやつ。

もっと速い環境とか、もっとでかい VM サイズを使えば、もっと速くなるかも。

[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-60.00  sec   494 MBytes  69.1 Mbits/sec  1899             sender
[  5]   0.00-60.00  sec   493 MBytes  69.0 Mbits/sec                  receiver
[  7]   0.00-60.00  sec   474 MBytes  66.3 Mbits/sec  2085             sender
[  7]   0.00-60.00  sec   473 MBytes  66.2 Mbits/sec                  receiver
[  9]   0.00-60.00  sec   644 MBytes  90.0 Mbits/sec  1469             sender
[  9]   0.00-60.00  sec   643 MBytes  89.9 Mbits/sec                  receiver
[ 11]   0.00-60.00  sec   337 MBytes  47.1 Mbits/sec  2194             sender
[ 11]   0.00-60.00  sec   336 MBytes  47.0 Mbits/sec                  receiver
[ 13]   0.00-60.00  sec   450 MBytes  62.9 Mbits/sec  2440             sender
[ 13]   0.00-60.00  sec   449 MBytes  62.7 Mbits/sec                  receiver
[SUM]   0.00-60.00  sec  2.34 GBytes   335 Mbits/sec  10087             sender
[SUM]   0.00-60.00  sec  2.34 GBytes   335 Mbits/sec                  receiver

#まとめ
割とでかいデータをサクサクとやり取りできる環境があると思うので、是非 Azure 使ってみてください!
パフォーマンスが気になったら、この記事を参考にして、スループットとかも計ってみてくださいませ!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?