Lagopus + Dockerでの性能評価

こちらを参考にDockerにLagopusの環境を作り、
スループットを評価を行いました。
チューニングなどは特に行っておらず、Intel DPDKの支援もなしです。
チューニングの余地はまだまだあるので、今後も評価を継続していきます。


[ Environments ]

                                                  • -

CPU: Intel(R) Core(TM)2 Quad Q8200@2.33GHz
Memory: 4Gbyte
OS: Ubuntu 14.04.1 LTS (64bit)

                                                  • -

Docker Version: 1.0.1
Docker Image: Ubunu 14.04

                                                  • -

Ryu Version: 3.13
Lagopus Version: 0.1
Lagpus DPDK Option: No

                                                  • -


[ Network chart ]

+-------------+
|     ryu     |
| (Container) |
+-------------+
  eth1 | 192.168.100.100/24
       |
       | br3
       |
  eth3 | 192.168.100.200/24
+-------------+
|   lagopus   | eth2      br2
| (Container) |--------------------+
+-------------+ 169.254.0.200/24   |
   | eth1                          |
   | 169.254.0.100/24         eth1 | 169.254.0.2/24
   |                        +-------------+
   |                        |   server2   |
   |                        | (Container) |
   |                        +-------------+
   |    +-------------+
   |    |   server1   |
   |    | (Container) |
   |    +-------------+
   |      eth1 | 169.254.0.1/24
  -+-----------+-
        br1

[Ryu command]
# ryu-manager --pid-file /var/run/simple_switch_13.pid --nouse-stderr --log-file /tmp/simple_switch_13.log /usr/local/ryu/ryu/app/simple_switch_13.py &

[lagopus command]
# lagopus -d -l /tmp/lagopus.log -- -- -p3 &

[ Perfomance Test ]

Case1: [server1]->[lagopus]
# iperf -c 169.254.0.200
------------------------------------------------------------
Client connecting to 169.254.0.200, TCP port 5001
TCP window size:  340 KByte (default)
------------------------------------------------------------
[  3] local 169.254.0.1 port 37516 connected with 169.254.0.200 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  19.4 GBytes  16.6 Gbits/sec


Case2: [server1]->[lagopus]->[server2]
# iperf -c 169.254.0.2 -w 16k
------------------------------------------------------------
Client connecting to 169.254.0.2, TCP port 5001
TCP window size: 32.0 KByte (WARNING: requested 16.0 KByte)
------------------------------------------------------------
[  3] local 169.254.0.1 port 36218 connected with 169.254.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.2 sec  1.50 MBytes  1.24 Mbits/sec

# iperf -c 169.254.0.2 -w 32K
------------------------------------------------------------
Client connecting to 169.254.0.2, TCP port 5001
TCP window size: 64.0 KByte (WARNING: requested 32.0 KByte)
------------------------------------------------------------
[  3] local 169.254.0.1 port 36212 connected with 169.254.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.3 sec   640 KBytes   511 Kbits/sec

# iperf -c 169.254.0.2 -w 64K
------------------------------------------------------------
Client connecting to 169.254.0.2, TCP port 5001
TCP window size:  128 KByte (WARNING: requested 64.0 KByte)
------------------------------------------------------------
[  3] local 169.254.0.1 port 36211 connected with 169.254.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-17.3 sec   384 KBytes   182 Kbits/sec