専用回線へのアクセスが完了したら、専用回線のパフォーマンスをテストして、サービスのニーズを満たしていることを確認する必要があります。
前提条件
テストの前に、前提条件が満たされている必要があります。
-
専用回線のアクセスとルートの設定を完了します。 ローカルデータセンターは、専用回線を介して 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 をインストールするには、次の手順に従います。
- 次のコマンドを実行して、netperf をダウンロードします。
wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz
- 次のコマンドを実行して、netperf をインストールします。
tar -zxvf netperf-2.5.0.tar.gz cd netperf-netperf-2.5.0 ./configure make make install
netperf -h
およびnetserver -h
コマンドを実行して、インストールが成功したかどうかを確認します。
iperf3 のインストール
Iperf3 はネットワークパフォーマンスをテストするためのツールで、最大 TCP または UDP 帯域幅をテストできます。
ローカルデータセンターのネットワークアクセスデバイスと 8 つの ECS インスタンスに iperf3 をインストールするには、次の手順に従います。
- 次のコマンドを実行して、iperf3 をダウンロードします。
yum install git -y git clone https://github.com/esnet/iperf
- 次のコマンドを実行して、iperf3 をインストールします。
cd iperf ./configure && make && make install && cd .. cd src ADD_PATH="$(pwd)" PATH="${ADD_PATH}:${PATH}" export PATH
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 | データパケットサイズ
|
インバウンド方向のテスト
- ローカルデータセンターのネットワークアクセスデバイスで 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
- 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 インスタンス
- 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 インスタンス
アウトバウンド方向のテスト
- VPC 内の 8 つの ECS インスタンスで netserver プロセスを起動し、次のようにポートを指定します。
netserver -p 11256
- ローカルデータセンターのネットワークアクセスデバイスで 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 インスタンス
- 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 インスタンス
アウトバウンド方向のテスト
- VPC 内の 8 つの ECS インスタンスで netserver プロセスを起動し、次のようにポートを指定します。
netserver -p 11256
- ローカルデータセンターのネットワークアクセスデバイスで 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 インスタンス
- 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 インスタンス
テスト結果の分析
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 プロセスをバインドできます。 |
インバウンド方向のテスト
- ローカルデータセンターのネットワークアクセスデバイス上で、サーバーモードで 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
- 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
アウトバウンド方向のテスト
- VPC内 の各 ECS インスタンス上で、サーバーモードで iperf3 プロセスを起動し、ポートを指定します。
iPerf3 -s -i 1 -p 16001
- ローカルデータセンターのネットワークアクセスデバイス上で、クライアントモードで 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 プロトコルで接続されます。