Amazon Linux 2023 に iperf3 をインストールして、EC2 インスタンス間のネットワークパフォーマンスをテストしてみた

Amazon Linux 2023 に iperf3 をインストールして、EC2 インスタンス間のネットワークパフォーマンスをテストしてみた

2025.10.06

はじめに

テクニカルサポートの 片方 です。
本ブログでは、Amazon Linux 2023(AL2023)上でネットワークベンチマークツールの iperf3 を使い、TCP 及び UDP 通信によるスループットを簡単に計測する手順を紹介します。

https://repost.aws/ja/knowledge-center/network-throughput-benchmark-linux-ec2

検証時の条件

  • Amazon Linux 2023 を利用
  • インスタンスタイプは m5.large を利用
  • 同じ AZ 内で起動

実装

  1. Amazon Linux 2023 OS の EC2 インスタンスを同じ AZ 内で 2 台起動します。
  2. SSH を使用して Linux インスタンスに接続し iperf3 をインストールします。

※ Amazon Linux 2023 の例

			
			$ sudo yum -y install iperf3

		
実行例
			
			sh-5.2$ sudo yum -y install iperf3
Amazon Linux 2023 Kernel Livepatch repository                                                                                                                                      247 kB/s |  26 kB     00:00
Dependencies resolved.
===================================================================================================================================================================================================================
 Package                                           Architecture                                Version                                                      Repository                                        Size
===================================================================================================================================================================================================================
Installing:
 iperf3                                            x86_64                                      3.19.1-1.amzn2023                                            amazonlinux                                      127 k
Installing dependencies:
 lksctp-tools                                      x86_64                                      1.0.18-9.amzn2023.0.3                                        amazonlinux                                       92 k

Transaction Summary
===================================================================================================================================================================================================================
Install  2 Packages

Total download size: 218 k
Installed size: 572 k
Downloading Packages:
(1/2): iperf3-3.19.1-1.amzn2023.x86_64.rpm                                                                                                                                         2.5 MB/s | 127 kB     00:00
(2/2): lksctp-tools-1.0.18-9.amzn2023.0.3.x86_64.rpm                                                                                                                               1.6 MB/s |  92 kB     00:00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                              2.5 MB/s | 218 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                           1/1
  Installing       : lksctp-tools-1.0.18-9.amzn2023.0.3.x86_64                                                                                                                                                 1/2
  Installing       : iperf3-3.19.1-1.amzn2023.x86_64                                                                                                                                                           2/2
  Running scriptlet: iperf3-3.19.1-1.amzn2023.x86_64                                                                                                                                                           2/2
  Verifying        : iperf3-3.19.1-1.amzn2023.x86_64                                                                                                                                                           1/2
  Verifying        : lksctp-tools-1.0.18-9.amzn2023.0.3.x86_64                                                                                                                                                 2/2

Installed:
  iperf3-3.19.1-1.amzn2023.x86_64                                                                     lksctp-tools-1.0.18-9.amzn2023.0.3.x86_64

Complete!
sh-5.2$

		

これで実装手順は完了です。少ない手順でセットアップできる点が良いですね。

テストしてみた

インスタンス間の TCP ネットワークパフォーマンス

1 つ目のインスタンスを特定の TCP ポートでリッスンするサーバーとして設定するために、以下のコマンドを実行します。

			
			$ sudo iperf3 -s -p 5001

		

この状態を維持しておいてください。

2 つ目のインスタンスをクライアントとして設定し、適切なパラメータを使用してサーバーに対してテストを実行します。

			
			$ sudo iperf3 -c xxx.xxx.xxx.xxx -p 5001 -t 10 -i 1

		

実行結果

1 つ目インスタンス側の実行結果
			
			sh-5.2$ sudo iperf3 -s -p 5001
-----------------------------------------------------------
Server listening on 5001 (test #1)
-----------------------------------------------------------
Accepted connection from 10.0.27.41, port 51088
[  5] local 10.0.20.0 port 5001 connected to 10.0.27.41 port 51098
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   593 MBytes  4.97 Gbits/sec
[  5]   1.00-2.00   sec   592 MBytes  4.97 Gbits/sec
[  5]   2.00-3.00   sec   584 MBytes  4.89 Gbits/sec
[  5]   3.00-4.00   sec   592 MBytes  4.97 Gbits/sec
[  5]   4.00-5.00   sec   592 MBytes  4.97 Gbits/sec
[  5]   5.00-6.00   sec   592 MBytes  4.97 Gbits/sec
[  5]   6.00-7.00   sec   592 MBytes  4.97 Gbits/sec
[  5]   7.00-8.00   sec   592 MBytes  4.97 Gbits/sec
[  5]   8.00-9.00   sec   592 MBytes  4.97 Gbits/sec
[  5]   9.00-10.00  sec   592 MBytes  4.97 Gbits/sec
[  5]  10.00-10.00  sec   768 KBytes  4.64 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  5.78 GBytes  4.96 Gbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5001 (test #2)
-----------------------------------------------------------

		
2 つ目インスタンス側の実行結果
			
			sh-5.2$ sudo iperf3 -c 10.0.20.0 -p 5001 -t 10 -i 1
Connecting to host 10.0.20.0, port 5001
[  5] local 10.0.27.41 port 51098 connected to 10.0.20.0 port 5001
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   597 MBytes  5.00 Gbits/sec    0   1.10 MBytes
[  5]   1.00-2.00   sec   591 MBytes  4.96 Gbits/sec    0   1.17 MBytes
[  5]   2.00-3.00   sec   584 MBytes  4.90 Gbits/sec    0   1.24 MBytes
[  5]   3.00-4.00   sec   592 MBytes  4.97 Gbits/sec    0   1.37 MBytes
[  5]   4.00-5.00   sec   592 MBytes  4.97 Gbits/sec    0   1.37 MBytes
[  5]   5.00-6.00   sec   593 MBytes  4.97 Gbits/sec    0   1.37 MBytes
[  5]   6.00-7.00   sec   592 MBytes  4.97 Gbits/sec    0   1.37 MBytes
[  5]   7.00-8.00   sec   591 MBytes  4.96 Gbits/sec    0   1.37 MBytes
[  5]   8.00-9.00   sec   593 MBytes  4.97 Gbits/sec    0   1.37 MBytes
[  5]   9.00-10.00  sec   592 MBytes  4.96 Gbits/sec    0   1.37 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  5.78 GBytes  4.96 Gbits/sec    0            sender
[  5]   0.00-10.00  sec  5.78 GBytes  4.96 Gbits/sec                  receiver

		

インスタンス間の UDP ネットワークパフォーマンス

前回と同様、1 つ目のインスタンスを特定の TCP ポートでリッスンするサーバーとして設定するために、以下のコマンドを実行します。

			
			$ sudo iperf3 -s -p 5001

		

この状態を維持しておいてください。

2 つ目のインスタンスをクライアントとして設定し、適切なパラメータを使用してサーバーに対してテストを実行します。
オプションとして、-u 付与することで、UDPモードを有効化します。

			
			$ sudo iperf3 -c xxx.xxx.xxx.xxx -u -p 5001 -b 5g -t 10 -i 1

		

実行結果

1 つ目インスタンス側の実行結果
			
			sh-5.2$ sudo iperf3 -s -p 5001
-----------------------------------------------------------
Server listening on 5001 (test #1)
-----------------------------------------------------------
Accepted connection from 10.0.27.41, port 46860
[  5] local 10.0.20.0 port 5001 connected to 10.0.27.41 port 48358
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec   595 MBytes  4.98 Gbits/sec  0.022 ms  21/69684 (0.03%)
[  5]   1.00-2.00   sec   594 MBytes  4.98 Gbits/sec  0.020 ms  6/69586 (0.0086%)
[  5]   2.00-3.00   sec   594 MBytes  4.98 Gbits/sec  0.020 ms  26/69570 (0.037%)
[  5]   3.00-4.00   sec   594 MBytes  4.98 Gbits/sec  0.021 ms  10/69585 (0.014%)
[  5]   4.00-5.00   sec   594 MBytes  4.98 Gbits/sec  0.021 ms  7/69575 (0.01%)
[  5]   5.00-6.00   sec   594 MBytes  4.98 Gbits/sec  0.019 ms  16/69583 (0.023%)
[  5]   6.00-7.00   sec   594 MBytes  4.98 Gbits/sec  0.033 ms  0/69568 (0%)
[  5]   7.00-8.00   sec   594 MBytes  4.98 Gbits/sec  0.012 ms  1/69587 (0.0014%)
[  5]   8.00-9.00   sec   594 MBytes  4.98 Gbits/sec  0.016 ms  3/69571 (0.0043%)
[  5]   9.00-10.00  sec   593 MBytes  4.98 Gbits/sec  0.016 ms  59/69583 (0.085%)
[  5]  10.00-10.00  sec   236 KBytes  5.13 Gbits/sec  0.019 ms  0/27 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  5.80 GBytes  4.98 Gbits/sec  0.019 ms  149/695919 (0.021%)  receiver
-----------------------------------------------------------
Server listening on 5001 (test #2)
-----------------------------------------------------------

		
2 つ目インスタンス側の実行結果
			
			sh-5.2$ sudo iperf3 -c 10.0.20.0 -u -p 5001 -b 5g -t 10 -i 1
Connecting to host 10.0.20.0, port 5001
[  5] local 10.0.27.41 port 48358 connected to 10.0.20.0 port 5001
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   595 MBytes  4.99 Gbits/sec  69718
[  5]   1.00-2.00   sec   594 MBytes  4.98 Gbits/sec  69575
[  5]   2.00-3.00   sec   594 MBytes  4.98 Gbits/sec  69580
[  5]   3.00-4.00   sec   594 MBytes  4.98 Gbits/sec  69577
[  5]   4.00-5.00   sec   594 MBytes  4.98 Gbits/sec  69576
[  5]   5.00-6.00   sec   594 MBytes  4.98 Gbits/sec  69575
[  5]   6.00-7.00   sec   594 MBytes  4.98 Gbits/sec  69582
[  5]   7.00-8.00   sec   594 MBytes  4.98 Gbits/sec  69576
[  5]   8.00-9.00   sec   594 MBytes  4.98 Gbits/sec  69576
[  5]   9.00-10.00  sec   594 MBytes  4.98 Gbits/sec  69584
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  5.80 GBytes  4.98 Gbits/sec  0.000 ms  0/695919 (0%)  sender
[  5]   0.00-10.00  sec  5.80 GBytes  4.98 Gbits/sec  0.019 ms  149/695919 (0.021%)  receiver

iperf Done.

		

UDP はコネクションレス型であり、TCP のような輻輳制御アルゴリズムはありません。iperf3 でテストする場合、UDP から取得する帯域幅は TCP から取得する帯域幅よりも低くなる可能性があります。

対象 EC2 インスタンスをクラスタープレイスメントグループに所属させてテスト

対象の EC2 インスタンスを共に、クラスタープレイスメントグループへ所属させます。
001

同様、1 つ目のインスタンスを特定の TCP ポートでリッスンするサーバーとして設定するために、以下のコマンドを実行します。

			
			$ sudo iperf3 -s -p 5001

		

この状態を維持しておいてください。

2 つ目のインスタンスをクライアントとして設定し、適切なパラメータを使用してサーバーに対してテストを実行します。
以下は TCP Ver です。

			
			$ sudo iperf3 -c xxx.xxx.xxx.xxx -p 5001 -t 10 -i 1

		

実行結果

1 つ目インスタンス側の実行結果
			
			sh-5.2$ sudo iperf3 -s -p 5001
-----------------------------------------------------------
Server listening on 5001 (test #1)
-----------------------------------------------------------
Accepted connection from 10.0.27.41, port 56840
[  5] local 10.0.20.0 port 5001 connected to 10.0.27.41 port 56844
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   1.00-2.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   2.00-3.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   3.00-4.00   sec  1.11 GBytes  9.51 Gbits/sec
[  5]   4.00-5.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   5.00-6.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   6.00-7.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   7.00-8.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   8.00-9.00   sec  1.11 GBytes  9.53 Gbits/sec
[  5]   9.00-10.00  sec  1.11 GBytes  9.53 Gbits/sec
[  5]  10.00-10.00  sec   384 KBytes  6.98 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  11.1 GBytes  9.53 Gbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5001 (test #2)
-----------------------------------------------------------

		
2 つ目インスタンス側の実行結果
			
			sh-5.2$ sudo iperf3 -c 10.0.20.0 -p 5001 -t 10 -i 1
Connecting to host 10.0.20.0, port 5001
[  5] local 10.0.27.41 port 56844 connected to 10.0.20.0 port 5001
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.11 GBytes  9.57 Gbits/sec    0   1.94 MBytes
[  5]   1.00-2.00   sec  1.11 GBytes  9.52 Gbits/sec    0   1.94 MBytes
[  5]   2.00-3.00   sec  1.11 GBytes  9.54 Gbits/sec    0   1.94 MBytes
[  5]   3.00-4.00   sec  1.11 GBytes  9.50 Gbits/sec  122   2.43 MBytes
[  5]   4.00-5.00   sec  1.11 GBytes  9.54 Gbits/sec    0   2.76 MBytes
[  5]   5.00-6.00   sec  1.11 GBytes  9.52 Gbits/sec    0   2.76 MBytes
[  5]   6.00-7.00   sec  1.11 GBytes  9.53 Gbits/sec    0   2.76 MBytes
[  5]   7.00-8.00   sec  1.11 GBytes  9.53 Gbits/sec    0   2.76 MBytes
[  5]   8.00-9.00   sec  1.11 GBytes  9.53 Gbits/sec    0   2.76 MBytes
[  5]   9.00-10.00  sec  1.11 GBytes  9.53 Gbits/sec    0   2.76 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.1 GBytes  9.53 Gbits/sec  122            sender
[  5]   0.00-10.00  sec  11.1 GBytes  9.53 Gbits/sec                  receiver

iperf Done.

		

以下のように、クラスタープレイスメントグループに配置したことでスループットが向上していることが確認できました。

テスト条件 平均スループット
通常(同一VPC・同AZ) 約 4.9〜5.0 Gbps
クラスタープレイスメントグループ配置後 約 9.53 Gbps

まとめ

本ブログがネットワークベンチマーク実施時の参考になれば幸いです。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

この記事をシェアする

FacebookHatena blogX

関連記事

Amazon Linux 2023 に iperf3 をインストールして、EC2 インスタンス間のネットワークパフォーマンスをテストしてみた | DevelopersIO