0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerのコンテナ間通信のスピードを測ってみた!

Posted at

#...ふと思った
「Dockerコンテナ間のネットワークのスピードってどれぐらい出てるんだ??」
...測ってみるか!

ってなことで、以下の要領でDockerのコンテナが2つだけ入ったネットワークを作り、そのコンテナ間のネットワークの速度をiperfで測ってみる実験をやってみました!

#実験環境
今回は、下記のようなスペックの実験環境を用意しました。

  1. 手元にあるPC
    intel Core i7-8750H (4.10GHz)、16GBメモリ、SSD
    Debian 10.9
    Docker 20.10.6

  2. AWS EC2
    t2.micro (intel Xeon E5-2686 v4 2.30GHz 1vCPU、1GiBメモリ、汎用SSD)
    Debian 10.9 (ami-0adb6517915458bdb)
    Docker 20.10.6

それぞれのマシンで次のコマンドを実行し、コンテナを作成しました。
docker network create speedtest
docker container run -d --network speedtest --name debian1 debian (サーバ側)
docker container run -d --network speedtest --name debian2 debian (クライアント側)
この後、それぞれのコンテナにアタッチし、apt install iperfを実行しました。

#実験方法
クライアント側のコンテナでiperf -c [サーバ側のIPアドレス]10秒間隔で3回実行し、平均値をとる。
そして、ホストを変えることによって CPUなどの違いで速度が変わるのか実験してみました。

#結果
###・手元のPC

root@ee984f974c0f:/# iperf -c 172.18.0.2
------------------------------------------------------------
Client connecting to 172.18.0.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 172.18.0.3 port 46796 connected with 172.18.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  51.8 GBytes  44.5 Gbits/sec

root@ee984f974c0f:/# iperf -c 172.18.0.2
------------------------------------------------------------
Client connecting to 172.18.0.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 172.18.0.3 port 46798 connected with 172.18.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  51.6 GBytes  44.3 Gbits/sec

root@ee984f974c0f:/# iperf -c 172.18.0.2
------------------------------------------------------------
Client connecting to 172.18.0.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 172.18.0.3 port 46800 connected with 172.18.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  52.1 GBytes  44.7 Gbits/sec

早えぇ~(心の声)

/ Transfer Bandwidth
Max. 52.1 GB/10s 44.7 Gbit/s
Min. 51.6 GB/10s 44.3 Gbit/s
Avg. 51.83 GB/10s 44.5 Gbit/s
めちゃくちゃ早いやん(心の声)

###・AWS EC2

root@4cd0a77376b6:/# iperf -c 172.18.0.2                                                     
------------------------------------------------------------                                 
Client connecting to 172.18.0.2, TCP port 5001                                               
TCP window size: 45.0 KByte (default)                                                        
------------------------------------------------------------                                 
[  3] local 172.18.0.3 port 56282 connected with 172.18.0.2 port 5001                        
[ ID] Interval       Transfer     Bandwidth                                                  
[  3]  0.0-10.0 sec  27.9 GBytes  23.9 Gbits/sec
                                             
root@4cd0a77376b6:/# iperf -c 172.18.0.2                                                     
------------------------------------------------------------                                 
Client connecting to 172.18.0.2, TCP port 5001                                               
TCP window size:  122 KByte (default)                                                        
------------------------------------------------------------                                 
[  3] local 172.18.0.3 port 56284 connected with 172.18.0.2 port 5001                        
[ ID] Interval       Transfer     Bandwidth                                                  
[  3]  0.0-10.0 sec  27.4 GBytes  23.5 Gbits/sec       
                                      
root@4cd0a77376b6:/# iperf -c 172.18.0.2                                                     
------------------------------------------------------------                                 
Client connecting to 172.18.0.2, TCP port 5001                                               
TCP window size: 45.0 KByte (default)                                                        
------------------------------------------------------------                                 
[  3] local 172.18.0.3 port 56286 connected with 172.18.0.2 port 5001                        
[ ID] Interval       Transfer     Bandwidth                                                  
[  3]  0.0-10.0 sec  28.1 GBytes  24.2 Gbits/sec       
/ Transfer Bandwidth
Max. 28.1 GB/10s 24.2 Gbit/s
Min. 27.4 GB/10s 23.5 Gbit/s
Avg. 27.8 GB/10s 23.86 Gbit/s

#結果総評
驚異の44Gbit/s (5.5GB/s)とか出てて正直びっくりしました。
あと、CPUなどのパーツの違いによって、コンテナ間のネットワークの速度に差が出ることもわかりました。
おもしろい実験だったと思います(自負)。


以上になります。
最後までお読みいただき、ありがとうございました!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?