のデプロイ後、ネットワークパフォーマンスをテストして、Express接続回線がビジネス要件を満たしていることを確認する必要があります。 このトピックでは、NetperfおよびiPerf3を使用してExpress Connect回路のパフォーマンスをテストする方法について説明します。
前提条件
Express Connect回路がデプロイされ、設定されます。 データセンターは、Express Connect回線を介してAlibaba Cloudに接続されています。
オンプレミスのデバイスは、NetperfまたはiPerf3テストでクライアントまたはサーバーとして機能するように準備されています。
この例では、オンプレミスデバイスのIPアドレスは192.168.100.1です。
8つのECS (Elastic Compute Service) インスタンスが作成され、仮想プライベートクラウド (VPC) にデプロイされます。 ECSインスタンスは、NetperfまたはiPerf3テストでクライアントまたはサーバーとして機能します。 ECSインスタンスは、設定情報とテスト結果を送信するためにオンプレミスデバイスに接続されています。
この例では、ECS. se1.2xlargeタイプのecsインスタンスが作成されます。 画像はcentos_7_2_64_40G_base_20170222.vhdで、IPアドレスの範囲は172.16.0.2 ~ 172.16.0.9です。
テスト環境の設定
NetperfとiPerf3のインストール
オンプレミスのデバイスとECSインスタンスにNetperfとiPerf3をインストールするには、次の操作を実行します。
次の操作は、ECSインスタンスにNetperfとiPerf3をインストールする方法を示しています。
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 -V
またはnetserver -V
を実行し、Netperfがインストールされているかどうかを確認します。システムが次の情報を返す場合、Netperfがインストールされます。
Netperf version 2.5.0
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 -v
コマンドを実行して、iPerf3がインストールされているかどうかを確認します。システムが次の情報を返す場合、Netperfがインストールされます:
iperf 3.10.1 + (cJSON 1.7.13) Linux iZbp15y0zrhx2ry6vo1b4wZ 3.10.0-957.21.3.el7.x86_64 #1 SMP 6月18 16:35:19 UTC 2019 x86_64
マルチキュー機能の有効化
インタフェースeth0がExpress Connect回路に接続されていると仮定する。 オンプレミスのデバイスで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を使用して、Express Connect回線のパケット転送パフォーマンスをテストします。
Netperfの概要
Netperfをインストールすると、netserver (サーバー) とnetperf (クライアント) の2つのコマンドラインインターフェイス (CLI) ツールが作成されます。 下表にパラメーター示します。
ツール | 主なパラメータ | 説明 |
netserver | -p | リスナーのポート番号。 |
netperf | -H | オンプレミスデバイスまたはECSインスタンスのIPアドレス。 |
-p | オンプレミスデバイスまたはECSインスタンスのポート。 | |
-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
8つのECSインスタンスで
netperf -H server_ip -p port 6 -t UDP_STREAM -l 300 -- -m 1
コマンドを実行し、netperfプロセスを開始し、ネットサーバーのポートをECSインスタンスのポートとして指定します。次のコマンドを実行してPPSをテストします。
netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The first ECS instance netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1 #The second ECS instance netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1 #The third ECS instance netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1 #The fourth ECS instance netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1 #The fifth ECS instance netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1 #The sixth ECS instance netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1 #The seventh ECS instance netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1 #The eighth ECS instance
次のコマンドを実行してBPSをテストします。
netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #The first ECS instance netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #The second ECS instance netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #The third ECS instance netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #The fourth ECS instance netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #The fifth ECS instance netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #The sixth ECS instance netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #The seventh ECS instance netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #The eighth ECS instance
クライアントとしてのオンプレミスデバイスのパケット転送パフォーマンスのテスト
ECSインスタンスで
netserver -p 11256
コマンドを実行し、netserverプロセスを開始し、ポートを指定します。オンプレミスデバイスで
netperf -H ECS_ip -p port -t UDP_STREAM -l 300 -- -m 1
コマンドを実行して、8つのnetperfプロセスを開始し、ECSインスタンスに異なるIPアドレスを指定します。次のコマンドを実行してPPSをテストします。
netperf -H 172.16.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The first ECS instance netperf -H 172.16.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The second ECS instance netperf -H 172.16.0.4 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The third ECS instance netperf -H 172.16.0.5 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The fourth ECS instance netperf -H 172.16.0.6 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The fifth ECS instance netperf -H 172.16.0.7 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The sixth ECS instance netperf -H 172.16.0.8 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The seventh ECS instance netperf -H 172.16.0.9 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The eighth ECS instance
次のコマンドを実行してBPSをテストします。
netperf -H 172.16.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #The first ECS instance netperf -H 172.16.0.3 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #The second ECS instance netperf -H 172.16.0.4 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #The third ECS instance netperf -H 172.16.0.5 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #The fourth ECS instance netperf -H 172.16.0.6 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #The fifth ECS instance netperf -H 172.16.0.7 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #The sixth ECS instance netperf -H 172.16.0.8 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #The seventh ECS instance netperf -H 172.16.0.9 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #The eighth ECS instance
テスト結果を分析する
クライアント側でnetperfプロセスが完了すると、次の結果が表示されます。 次の式を使用してPPSを計算できます。PPS=送信されるパケットの数 /テストの期間。
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 | 送信に失敗したパケットの数。 |
スループット | ネットワークスループット。 単位は、Mbit/s です。 |
iPerf3を使用してExpress Connect回路の帯域幅をテストする
iPerf3の概要
次の表に、iPerf3の主なパラメーターを示します。
主なパラメータ | 説明 |
-s | サーバーにのみ適用されます。 このパラメーターは、iPerf3がサーバーモードで実行されることを指定します。 |
-c | クライアントにのみ適用されます。 このパラメーターは、iPerf3をクライアントモードで実行することを指定します。 |
-i | 2つのレポートの間隔を指定します。 単位は秒です。 |
-p |
|
-u | UDPを使用してパケットを送信します。 このパラメーターが設定されていない場合、TCPが使用されます。 |
-l | 読み取り /書き込みバッファーの長さを指定します。 パケット転送パフォーマンスをテストするときは、値を16に設定することを推奨します。 帯域幅をテストするときは、値を1400に設定することを推奨します。 |
-b | UDPモードで使用される帯域幅を指定します。 単位:bit/s。 |
-t | 送信の期間を指定します。 iPerf3は、指定された長さのパケットを指定された期間内に繰り返し送信します。 デフォルトの所要時間は10秒です。 |
-A | CPUアフィニティ。 iPerf3プロセスを対応するIDで論理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
ECSインスタンスで
iperf3 -u -l 16 -b 100m -t 120 -c server_ip -i 1 -p port -A 1
コマンドを実行して、クライアントモードでiPerf3プロセスを開始し、ECSインスタンスのポートとしてオンプレミスデバイスのポートを指定します。次のコマンドを実行します。
iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16001 -A 1 #The first ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16002 -A 2 #The second ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16003 -A 3 #The third ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16004 -A 4 #The fourth ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16005 -A 5 #The fifth ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16006 -A 6 #The sixth ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16007 -A 7 #The seventh ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16008 -A 8 #The eighth ECS instance
クライアントとしてのオンプレミスデバイスの帯域幅のテスト
ECSインスタンスで
iperf3 -s -i 1 -p 16001
コマンドを実行して、サーバーモードでiPerf3プロセスを開始し、ポートを指定します。オンプレミスデバイスで次のコマンドを実行して、クライアントモードで8つのiPerf3プロセスを開始します。
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プロセスが完了すると、次の結果が表示されます。 次の式を使用してPPSを計算できます。PPS=ピアが受信したパケットの数 /テストの期間。
[ 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
30352送信
サーバー側でsar
コマンドを実行して、実際に受信したパケットをカウントすることを推奨します。 例: sar -n DEV 1 320
次の表に、テスト結果のフィールドを示します。
項目 | 説明 |
Transfer | 送信されるデータの総量。 |
帯域幅 | 帯域幅 |
Jitter | ネットワークのジッター。 |
Lost/Total Datagrams | パケット損失率は、次の式に基づいて計算されます。パケット損失率=ドロップされたパケットの数 /パケットの総数。 |