OpenWrt:iperfネットワーク性能テスト

7510 ワード

iperfは、米国イリノイ大学(University of Illinois)が開発したオープンソースのネットワーク性能テストツールである.ネットワークノード間(ループバックを含む)TCPまたはUDP接続の性能を試験するために使用されてもよく、帯域幅、ジッタ、およびパケット損失率を含み、ジッタおよびパケット損失率はUDP試験に適合し、帯域幅試験はTCPおよびUDP試験に適合する.iperfという特性を利用して、ルータ、ファイアウォール、スイッチなどのネットワークデバイスの性能をテストすることができます.
ネットワークの主なパフォーマンスパラメータには、帯域幅、遅延、ジッタ、パケット損失率が含まれます.これらは、QOS(サービス品質)の名詞に置き換えられます.遅延については、iperfは何もできません.しかしiperfはジッタを計算することができ,テスト時に大量のパケットを送信する必要があるため,計算したジッタ値は連続送信遅延差値の平均値である.
帯域幅試験は、通常、限界帯域幅、遅延ジッタ、パケット損失率を測定できるため、UDPモードを採用する.テストを行う場合、まずリンク理論帯域幅をデータ送信速度としてテストを行い、例えばクライアントからサーバまでのリンクの理論帯域幅は100Mbpsであり、まず-b 100Mでテストを行い、その後、テスト結果(実際の帯域幅、遅延ジッタ、パケット損失率を含む)に基づいて、実際の帯域幅をデータ送信速度としてテストを行うと、遅延ジッタとパケット損失率が最初よりずっと良いことがわかります.何度かテストを繰り返すと、安定した実際の帯域幅が得られます.

iperfコンパイルインストール

make menuconfigを実行し、次のように構成します.
Network  --->
     iperf3.............. Internet Protocol bandwidth measuring tool
make -j8 V=99コンパイルを実行し、デバイスにコピーしてインストールします.
# mount -t nfs -o nolock 192.168.0.103:/opt/nfs /mnt/nfs
# opkg install /mnt/nfs/iperf3_3.0.11-1_ramips_24kec.ipk 
Installing iperf3 (3.0.11-1) to root...
Configuring iperf3.

UDPモード


サーバ側:
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.0.102, port 36420
[  5] local 192.168.0.103 port 5201 connected to 192.168.0.102 port 47568
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec   192 KBytes  1.57 Mbits/sec  11.425 ms  39/63 (62%)  
[  5]   1.00-2.00   sec  2.73 MBytes  22.9 Mbits/sec  6.296 ms  0/350 (0%)  
[  5]   2.00-3.00   sec  3.03 MBytes  25.4 Mbits/sec  3.376 ms  0/388 (0%)  
[  5]   3.00-4.00   sec  3.11 MBytes  26.1 Mbits/sec  2.895 ms  0/398 (0%)  
[  5]   4.00-5.00   sec  2.90 MBytes  24.3 Mbits/sec  3.027 ms  0/371 (0%)  
[  5]   5.00-6.00   sec  3.07 MBytes  25.8 Mbits/sec  3.963 ms  0/393 (0%)  
[  5]   6.00-7.00   sec  3.19 MBytes  26.7 Mbits/sec  4.895 ms  0/408 (0%)  
[  5]   7.00-8.00   sec  3.11 MBytes  26.1 Mbits/sec  2.836 ms  0/398 (0%)  
[  5]   8.00-9.00   sec  3.10 MBytes  26.0 Mbits/sec  3.510 ms  0/397 (0%)  
[  5]   9.00-10.00  sec  1.74 MBytes  14.6 Mbits/sec  6.831 ms  171/394 (43%)  
[  5]  10.00-10.06  sec   160 KBytes  21.3 Mbits/sec  5.124 ms  0/20 (0%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-10.06  sec  0.00 Bytes  0.00 bits/sec  5.124 ms  210/3580 (5.9%)   

クライアント:
# iperf3 -u -c 192.168.0.103 -b 50M -t 10
Connecting to host 192.168.0.103, port 5201
[  4] local 192.168.0.102 port 47568 connected to 192.168.0.103 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec   704 KBytes  5.77 Mbits/sec  88  
[  4]   1.00-2.00   sec  2.77 MBytes  23.2 Mbits/sec  354  
[  4]   2.00-3.00   sec  3.03 MBytes  25.4 Mbits/sec  388  
[  4]   3.00-4.00   sec  3.09 MBytes  25.9 Mbits/sec  395  
[  4]   4.00-5.00   sec  2.92 MBytes  24.5 Mbits/sec  374  
[  4]   5.00-6.00   sec  3.09 MBytes  25.9 Mbits/sec  395  
[  4]   6.00-7.00   sec  3.20 MBytes  26.9 Mbits/sec  410  
[  4]   7.00-8.00   sec  3.08 MBytes  25.8 Mbits/sec  394  
[  4]   8.00-9.00   sec  3.09 MBytes  26.0 Mbits/sec  396  
[  4]   9.00-10.00  sec  3.04 MBytes  25.5 Mbits/sec  389  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec  28.0 MBytes  23.5 Mbits/sec  5.124 ms  210/3580 (5.9%)  
[  4] Sent 3580 datagrams

iperf Done.
udpモードでは、50Mbpsをデータ送信レートとし、クライアントはサーバ192.168.0.103に帯域幅テストをアップロードし、テスト時間は10秒である.
# iperf3 -u -c 192.168.0.103 -b 5M -P 10 -t 10

クライアントは、10個の接続スレッドを同時にサーバ側に開始し、5Mbpsをデータ送信レートとする.
# iperf3 -u -c 192.168.0.103 -b 50M -d -t 10
50Mをデータ送信レートとして、上下帯域幅テストを行う.

TCPモード


サーバ側:
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.0.102, port 36424
[  5] local 192.168.0.103 port 5201 connected to 192.168.0.102 port 36425
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   116 KBytes   949 Kbits/sec                  
[  5]   1.00-2.00   sec   642 KBytes  5.26 Mbits/sec                  
[  5]   2.00-3.00   sec  2.25 MBytes  18.9 Mbits/sec                  
[  5]   3.00-4.00   sec  2.61 MBytes  21.9 Mbits/sec                  
[  5]   4.00-5.00   sec  2.74 MBytes  23.0 Mbits/sec                  
[  5]   5.00-6.00   sec  2.94 MBytes  24.7 Mbits/sec                  
[  5]   6.00-7.00   sec  2.77 MBytes  23.3 Mbits/sec                  
[  5]   7.00-8.00   sec  2.97 MBytes  24.9 Mbits/sec                  
[  5]   8.00-9.00   sec  3.29 MBytes  27.6 Mbits/sec                  
[  5]   9.00-10.00  sec  3.11 MBytes  26.1 Mbits/sec                  
[  5]  10.00-10.15  sec   369 KBytes  20.9 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.15  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.15  sec  23.8 MBytes  19.7 Mbits/sec                  receiver
-----------------------------------------------------------

クライアント:
# iperf3 -c 192.168.0.103 -t 10
Connecting to host 192.168.0.103, port 5201
[  4] local 192.168.0.102 port 36425 connected to 192.168.0.103 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   184 KBytes  1.51 Mbits/sec   20   24.0 KBytes       
[  4]   1.00-2.00   sec   735 KBytes  6.02 Mbits/sec   17   43.8 KBytes       
[  4]   2.00-3.00   sec  2.29 MBytes  19.2 Mbits/sec    0   76.4 KBytes       
[  4]   3.00-4.00   sec  2.69 MBytes  22.5 Mbits/sec    0    123 KBytes       
[  4]   4.00-5.00   sec  2.88 MBytes  24.2 Mbits/sec    0    215 KBytes       
[  4]   5.00-6.00   sec  3.04 MBytes  25.5 Mbits/sec    0    338 KBytes       
[  4]   6.00-7.00   sec  2.75 MBytes  23.1 Mbits/sec    0    417 KBytes       
[  4]   7.00-8.00   sec  3.03 MBytes  25.4 Mbits/sec    0    457 KBytes       
[  4]   8.00-9.00   sec  3.36 MBytes  28.2 Mbits/sec    0    499 KBytes       
[  4]   9.00-10.00  sec  3.14 MBytes  26.3 Mbits/sec    0    522 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  24.1 MBytes  20.2 Mbits/sec   37             sender
[  4]   0.00-10.00  sec  23.8 MBytes  20.0 Mbits/sec                  receiver

iperf Done.
tcpモードでは、クライアントは帯域幅テストをサーバ192.168.0.103にアップロードし、テスト時間は10秒である.
# iperf3 -c 192.168.0.103 -P 10 -t 10

クライアントは、10個の接続スレッドを同時にサーバ側に開始する.
# iperf3 -c 192.168.0.103 -d -t 10

上下帯域幅テストを行います.

参考記事


iperfを使用してネットワークのパフォーマンスをテストするIperf使用説明iperfコマンド