この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
iperf(アイパーフ)は、ネットワークスループットを測定するためのフリーのソフトウェアです。 Windows版の他にもMac版、Linux版もあります。
iperfの使い方
iperfは、2台のサーバにインストールし、一方をクライアント、もう一方をサーバとして、2つ1組で使用します。
iperf書式
iperf [-s | -c IPアドレス] [オプション]
-s サーバモード
-c クライアントモード -cの後サーバのIPアドレスを指定
オプションの種類(抜粋)
-i 指定した秒ごとに測定値を表示
-p 待受けポート番号を指定(デフォルト:5001)
-u UDPモードで起動(デフォルト:TCPモード)
-b UDPの帯域を指定(デフォルト:1Mbps)
※オプションは他にもあります。ヘルプを確認してください。
構成
今回、EC2の2台(t2.micro)の間でiperfを利用して測定してみました。 同じサブネット内で検証しております。
インストール
googleで調べた結果、epelのレポジトリを有効にする必要がありました。
[ec2-user@ip-10-0-11-84 ~]$ sudo yum install iperf --enablerepo=epel
読み込んだプラグイン:priorities, update-motd, upgrade-helper
970 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ iperf.x86_64 0:2.0.5-11.el6 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
# 省略
インストール中:
iperf x86_64 2.0.5-11.el6 epel 53 k
トランザクションの要約
============================================================================
インストール 1 パッケージ
総ダウンロード容量: 53 k
インストール容量: 122 k
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/latest/epel/packages/iperf-2.0.5-11.el6.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 0608b895: NOKEY
iperf-2.0.5-11.el6.x86_64.rpm の公開鍵がインストールされていません
iperf-2.0.5-11.el6.x86_64.rpm | 53 kB 00:00
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 から鍵を取得中です。
Importing GPG key 0x0608B895:
Userid : "EPEL (6) <epel@fedoraproject.org>"
Fingerprint: 8c3b e96a f230 9184 da5c 0dae 3b49 df2a 0608 b895
Package : epel-release-6-8.9.amzn1.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : iperf-2.0.5-11.el6.x [################### ] 1/1
検証中 : iperf-2.0.5-11.el6.x86_64 1/1
インストール:
iperf.x86_64 0:2.0.5-11.el6
完了しました!
[ec2-user@ip-10-0-11-84 ~]$
Security Groupの設定
測定の前に、測定に必要なtcpポートをSecurity Groupの設定を追加しましょう。
iperfクライアント側の実施結果
[ec2-user@ip-10-0-11-84 ~]$ iperf -c 10.0.11.85
------------------------------------------------------------
Client connecting to 10.0.11.85, TCP port 5001
TCP window size: 95.2 KByte (default)
------------------------------------------------------------
[ 3] local 10.0.11.84 port 50948 connected with 10.0.11.85 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.18 GBytes 1.01 Gbits/sec
iperfサーバ側の実施結果
[ec2-user@ip-10-0-11-85 ~]$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 10.0.11.85 port 5001 connected with 10.0.11.84 port 50948
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 1.18 GBytes 1.01 Gbits/sec
応用編
UDPを使用した測定を行うと、パケットロスの数や、ジッタ(受信パケットの遅延のばらつき)の値を表示できます。
iperfクライアント側のUDPでの実施結果
[ec2-user@ip-10-0-11-84 ~]$ iperf -c 10.0.11.85 -u -i 1
------------------------------------------------------------
Client connecting to 10.0.11.85, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 10.0.11.84 port 36020 connected with 10.0.11.85 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 129 KBytes 1.06 Mbits/sec
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 3.0- 4.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 4.0- 5.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 5.0- 6.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 6.0- 7.0 sec 129 KBytes 1.06 Mbits/sec
[ 3] 7.0- 8.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 8.0- 9.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 9.0-10.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec
[ 3] Sent 893 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.068 ms 0/ 893 (0%)
[ec2-user@ip-10-0-11-84 ~]$
iperfサーバ側のUDPでの実施結果
[ec2-user@ip-10-0-11-85 ~]$ iperf -s -u -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 10.0.11.85 port 5001 connected with 10.0.11.84 port 36020
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 128 KBytes 1.05 Mbits/sec 0.048 ms 0/ 89 (0%)
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec 0.058 ms 0/ 89 (0%)
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec 0.028 ms 0/ 89 (0%)
[ 3] 3.0- 4.0 sec 128 KBytes 1.05 Mbits/sec 0.065 ms 0/ 89 (0%)
[ 3] 4.0- 5.0 sec 128 KBytes 1.05 Mbits/sec 0.044 ms 0/ 89 (0%)
[ 3] 5.0- 6.0 sec 128 KBytes 1.05 Mbits/sec 0.048 ms 0/ 89 (0%)
[ 3] 6.0- 7.0 sec 129 KBytes 1.06 Mbits/sec 0.053 ms 0/ 90 (0%)
[ 3] 7.0- 8.0 sec 128 KBytes 1.05 Mbits/sec 0.041 ms 0/ 89 (0%)
[ 3] 8.0- 9.0 sec 128 KBytes 1.05 Mbits/sec 0.033 ms 0/ 89 (0%)
[ 3] 9.0-10.0 sec 128 KBytes 1.05 Mbits/sec 0.073 ms 0/ 89 (0%)
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.069 ms 0/ 893 (0%)
[ec2-user@ip-10-0-11-85 ~]$