専用回線へのアクセスが完了したら、専用回線のパフォーマンスをテストして、サービスのニーズを満たしていることを確認する必要があります。

前提条件

テストの前に、前提条件が満たされている必要があります。

  • 専用回線のアクセスとルートの設定を完了します。 ローカルデータセンターは、専用回線を介して VPC に接続する必要があります。

  • ローカルデータセンター用のネットワークアクセスデバイスを準備します。ネットワークアクセスデバイスは、ローカルデータセンターの 1 秒あたりのパケット数 (pps) をテストするためにストレステストの対象となります。 Netperf または iperf3 テストではクライアントまたはサーバーとして機能します。

    このチュートリアルでは、ローカルデータセンターの IP アドレスは 192.168.100.1 です。

  • 8 つの VPC ECS インスタンスを準備します。ECS インスタンスは、Netperf または iperf3 テストでクライアントまたはサーバーとして機能します。 8 つの VPC ECS インスタンスは、ローカルデータセンターのネットワークアクセスデバイスに接続され、テスト設定とテスト結果を送信します。

    このチュートリアルでは、8 つの ECS インスタンスが使用されており、仕様は ecs.se1.2xlarge、イメージは centos_7_2_64_40G_base_20170222.vhd、および IP アドレス範囲は 172.16.0.2 から 172.16.0.9 です。

テスト環境の構築

Netperf のインストール

Netperf はネットワークパフォーマンスをテストするためのツールであり、TCP または UDP 伝送に基づいています。

ローカルデータセンターのネットワークアクセスデバイスと 8 つの ECS インスタンスに Netperf をインストールするには、次の手順に従います。

  1. 次のコマンドを実行して、netperf をダウンロードします。
    wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz
  2. 次のコマンドを実行して、netperf をインストールします。
    tar -zxvf netperf-2.5.0.tar.gz
    cd netperf-netperf-2.5.0
    ./configure 
    make 
    make install
  3. netperf -h および netserver -h コマンドを実行して、インストールが成功したかどうかを確認します。

iperf3 のインストール

Iperf3 はネットワークパフォーマンスをテストするためのツールで、最大 TCP または UDP 帯域幅をテストできます。

ローカルデータセンターのネットワークアクセスデバイスと 8 つの ECS インスタンスに iperf3 をインストールするには、次の手順に従います。

  1. 次のコマンドを実行して、iperf3 をダウンロードします。
    yum install git -y  
    git clone https://github.com/esnet/iperf
  2. 次のコマンドを実行して、iperf3 をインストールします。
    cd iperf
    ./configure && make && make install && cd ..
    cd src
    ADD_PATH="$(pwd)" 
    PATH="${ADD_PATH}:${PATH}"
    export PATH
  3. iperf3 -h コマンドを実行して、インストールが成功したかどうかを確認します。

複数キュー機能の有効化

ローカルデータセンターのネットワークアクセスデバイスで次のコマンドを実行して、複数キュー機能を有効にします (専用回線に接続されているインターフェイスは eth0 であるとします)。

ethtool -L eth0 combined 4
echo "ff" > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo "ff" > /sys/class/net/eth0/queues/rx-1/rps_cpus
echo "ff" > /sys/class/net/eth0/queues/rx-2/rps_cpus
echo "ff" > /sys/class/net/eth0/queues/rx-3/rps_cpus

netperf の使用した専用回線のパケット転送パフォーマンステスト

インストール後、netperf は 2 つのコマンドラインツールを作成します。netserver (サーバー側) と netperf (クライアント側)です。 次の表に 2 つのツールの主なパラメーターを示します。

ツール名 主なパラメーター パラメーターの説明
netserver (サーバー側: 受信側ツール) -p サーバーのポート
netperf (クライアント側: 送信側ツール) -H ローカルデータセンターまたは VPC サーバーのネットワークアクセスデバイスの IP アドレス
-p ローカルデータセンターまたは VPC サーバーのネットワークアクセスデバイスのポート
-l 実行期間
-t パケットの送信に使用されるプロトコルには、TCP_STREAM または UDP_STREAM があります。

UDP_STREAM の使用を推奨します。

-m データパケットサイズ
  • pps をテストするときは、値を 1 に設定することを推奨します。
  • bps (bit per second) をテストするときは、値を 1400 に設定することを推奨します。

インバウンド方向のテスト

  1. ローカルデータセンターのネットワークアクセスデバイスで netserver プロセスを起動し、別のポートを指定します。
     netserver -p 11256
     netserver -p 11257 
     netserver -p 11258 
     netserver -p 11259 
     netserver -p 11260 
     netserver -p 11261 
     netserver -p 11262 
     netserver -p 11263
  2. VPC 内の 8 つの ECS インスタンスで netperf プロセスを開始し、ローカルデータセンターのネットワークアクセスデバイスに接続するポートを指定します。
     netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #1 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1 #2 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1 #3 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1 #4 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1 #5 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1 #6 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1 #7 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1 #8 つめの ECS インスタンス
  3. bps のテストをする場合は、先述のコマンドを下記に変更します。
     netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #1 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #2 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #3 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #4 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #5 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #6 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #7 つめの ECS インスタンス
    netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #8 つめの ECS インスタンス

アウトバウンド方向のテスト

  1. VPC 内の 8 つの ECS インスタンスで netserver プロセスを起動し、次のようにポートを指定します。
    netserver -p 11256
  2. ローカルデータセンターのネットワークアクセスデバイスで 8 つの netperf プロセスを起動し、異なる IP アドレスを指定します。
     netperf -H 172.16.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #1 つめの ECS インスタンス
     netperf -H 172.16.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #2 つめの ECS インスタンス
     netperf -H 172.16.0.4 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #3 つめの ECS インスタンス
     netperf -H 172.16.0.5 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #4 つめの ECS インスタンス
     netperf -H 172.16.0.6 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #5 つめの ECS インスタンス
     netperf -H 172.16.0.7 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #6 つめの ECS インスタンス
     netperf -H 172.16.0.8 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #7 つめの ECS インスタンス
     netperf -H 172.16.0.9 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #8 つめの ECS インスタンス
  3. bps をテストする場合は、上記のコマンドを次のように変更します。
     netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #1 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #2 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #3 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #4 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #5 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #6 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #7 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #8 つめの ECS インスタンス

アウトバウンド方向のテスト

  1. VPC 内の 8 つの ECS インスタンスで netserver プロセスを起動し、次のようにポートを指定します。
    netserver -p 11256
  2. ローカルデータセンターのネットワークアクセスデバイスで 8 つの netperf プロセスを起動し、異なる IP アドレスを指定します。
     netperf -H 172.16.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #1 つめの ECS インスタンス
     netperf -H 172.16.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #2 つめの ECS インスタンス
     netperf -H 172.16.0.4 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #3 つめの ECS インスタンス
     netperf -H 172.16.0.5 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #4 つめの ECS インスタンス
     netperf -H 172.16.0.6 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #5 つめの ECS インスタンス
     netperf -H 172.16.0.7 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #6 つめの ECS インスタンス
     netperf -H 172.16.0.8 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #7 つめの ECS インスタンス
     netperf -H 172.16.0.9 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #8 つめの ECS インスタンス
  3. bps をテストする場合は、上記のコマンドを次のように変更します。
     netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #1 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #2 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #3 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #4 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #5 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #6 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #7 つめの ECS インスタンス
     netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #8 つめの ECS インスタンス

テスト結果の分析

クライアント側の netperf プロセスが完了すると、以下の結果が表示されます。
   Socket Message Elapsed Messages
   Size Size Time Okay Errors Throughput
   bytes bytes secs # # 10^6bits/sec
   124928 1 10.00 4532554 0 3.63
   212992 10.00 1099999 0.88

次の表に、テスト結果のフィールドの説明を示します。

フィールド フィールドの説明
Socket Size バッファサイズ
Message Size パケットサイズ (バイト)
Elapsed Time テスト期間 (秒)
Message Okay 正常に送信されたパケット数
Message Errors 送信に失敗したパケット数
Throughput ネットワークスループット (Mbit/s)

正常に送信されたパケット数をテスト期間で割れば、テストしたリンクの pps を取得できます。 pps = 正常に送信されたパケット数/テスト期間

iperf3 を使用した専用回線の帯域幅のテスト

次の表に、iperf3 の主なパラメーターを示します。

ツール名 主なパラメーター 説明
iPerf3 -s サーバーとしてパケットを受信していることを示します。
-i 2 つのレポートごとの間隔 (秒単位) です。
-p サーバーのリスニングポート。
-u UDP プロトコルを使用してパケットを送信することを示します。 このパラメーターが指定されていない場合は、TCP プロトコルが使用されます。
-l 読み書きバッファの長さを示します。 パケット転送パフォーマンスをテストするときは 16 に、帯域幅をテストするときは 1400 に設定することを推奨します。
-b UDP モードで使用される帯域幅 (bit/s)。
-t 送信期間を設定します。 指定された期間内に、iperf は指定された長さのパケットを繰り返し送信します。 デフォルト値は 10 秒です。
-A CPU アフィニティ。 iperf3 プロセスの CPU 間のスケジューリングを回避するために、対応する番号の論理 CPU に iperf3 プロセスをバインドできます。

インバウンド方向のテスト

  1. ローカルデータセンターのネットワークアクセスデバイス上で、サーバーモードで iperf3 プロセスを起動し、次のように異なるポートを指定します。
     iPerf3 -s -i 1 -p 16001
     iPerf3 -s -i 1 -p 16002
     iPerf3 -s -i 1 -p 16003
     iPerf3 -s -i 1 -p 16004
     iPerf3 -s -i 1 -p 16005
     iPerf3 -s -i 1 -p 16006
     iPerf3 -s -i 1 -p 16007
     iPerf3 -s -i 1 -p 16008
  2. VPC 内の 8 つの ECS インスタンス上で、クライアントモードで iperf3 プロセスを開始し、ローカルデータセンターのネットワークアクセスデバイスに接続するポートを指定します。
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16001 -A 1
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16002 -A 2
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16003 -A 3
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16004 -A 4
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16005 -A 5
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16006 -A 6
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16007 -A 7
     iPerf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16008 -A 8

アウトバウンド方向のテスト

  1. VPC内 の各 ECS インスタンス上で、サーバーモードで iperf3 プロセスを起動し、ポートを指定します。
     iPerf3 -s -i 1 -p 16001
  2. ローカルデータセンターのネットワークアクセスデバイス上で、クライアントモードで 8 つの iperf3 プロセスを開始します。-c の値は各 ECS インスタンスの IP アドレスです。
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.2 -i 1 -p 16001 -A 1
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.3 -i 1 -p 16001 -A 2
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.4 -i 1 -p 16001 -A 3
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.5 -i 1 -p 16001 -A 4
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.6 -i 1 -p 16001 -A 5
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.7 -i 1 -p 16001 -A 6
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.8 -i 1 -p 16001 -A 7
     iPerf3 -u -l 16 -b 100m -t 120 -c 172.16.0.9 -i 1 -p 16001 -A 8

テスト結果の分析

クライアント側の iperf3 プロセスが完了すると、次の結果が表示されます。

[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 237 MBytes 199 Mbits/sec 0.027 ms 500/30352 (1.6%)
[ 4] Sent 30352 datagrams
以下の表に、結果のフィールドの説明を示します。
フィールド 定義
Transfer データ転送量
Bandwidth 帯域幅
Jitter ジッタ
Lost/Total Datagrams ドロップされたパケット数/総パケット数 (パケットロス)

PPS = ピアエンドが受信したパケット数/期間

サーバー側で sar コマンドを実行して実際に受信したパケットをカウントし、取得した値を実際の結果として使用することを推奨します (sar -n DEV 1 320 など)。

Alibaba Cloud 側の速度制限

専用回線の制限に加えて、以下に VPC とローカルデータセンター間の通信の制限を示します。

  • OSS の最大読み書き速度は 5 Gbit/sです。
  • 信頼性を向上させるために、VPC から VBR への単一ハッシュストリームの速度は Express Connect の帯域幅/12 に制限されています。 たとえば、VBR から VPC までの帯域幅が large1 (1 Gbps) の場合、単一ハッシュストリームの最大帯域幅は 83 Mbpsです。

    ハッシュストリーム: 送信元 IP アドレス、送信元ポート、トランスポート層プロトコル、宛先 IP アドレス、および宛先ポートの組み合わせによって定義されるデータストリーム。 たとえば、"192.168.1.1 10000 TCP 121.14.88.76 80" はハッシュストリームになります。 IP アドレスが 192.168.1.1 の端末は、ポート 10000 を介して IP アドレスが 121.14.88.76 の端末のポート 80 に TCP プロトコルで接続されます。