OpenFlowスイッチ(Open vSwitch)の性能測定 (続編)
前回の性能テストで OpenFlow スイッチを経由することによる TCP, UDP の性能の低下を確認できなかったので、今度は全パケットを OpenFlow コントローラを経由するようにして測定してみました。
今回のテスト環境では以下の構成です:
OpenFlow スイッチとコントローラを直結しじゃまが一切入らないようにしました。
前回同様に iperf コマンドを用いて測定し、ホスト1(192.168.0.1)をサーバ、ホスト2(192.168.0.2)をクライアントとして動かしています。以下の出力結果はすべて 192.168.0.2 側で採取したものです。
測定結果は、UDP ではほとんど変わりませんが、TCP では劇的に 95M → 5M と性能が悪化しています。
テスト中、OpenFlow コントローラ側にて top コマンドを実行し CPU のアイドル時間を眺めていたのですが UDP の時は 30% ぐらいまで落ち込むのに対して、TCP の時は 70% ぐらいにしかならず暇してました。
これはどう解釈したらよいのでしょう?
Tremaで実行したコード:
class RepeaterHubPacketInOut < Controller def packet_in( datapath_id, message ) send_packet_out( datapath_id, :packet_in => message, :actions => ActionOutput.new( OFPP_FLOOD ) ) end end
(1) Ping
$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=2.91 ms 64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=2.58 ms 64 bytes from 192.168.0.1: icmp_req=3 ttl=64 time=2.80 ms 64 bytes from 192.168.0.1: icmp_req=4 ttl=64 time=2.69 ms 64 bytes from 192.168.0.1: icmp_req=5 ttl=64 time=2.40 ms ^C --- 192.168.0.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4007ms rtt min/avg/max/mdev = 2.407/2.680/2.912/0.184 ms
(2) TCP
3回実行しています。平均すると 5.62Mbits/sec
$ iperf -c 192.168.0.1 ------------------------------------------------------------ Client connecting to 192.168.0.1, TCP port 5001 TCP window size: 21.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.0.2 port 54052 connected with 192.168.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.5 sec 7.00 MBytes 5.61 Mbits/sec $ iperf -c 192.168.0.1 ------------------------------------------------------------ Client connecting to 192.168.0.1, TCP port 5001 TCP window size: 21.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.0.2 port 54053 connected with 192.168.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.3 sec 7.38 MBytes 6.03 Mbits/sec $ iperf -c 192.168.0.1 ------------------------------------------------------------ Client connecting to 192.168.0.1, TCP port 5001 TCP window size: 21.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.0.2 port 54054 connected with 192.168.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.4 sec 6.50 MBytes 5.23 Mbits/sec
(3) UDP
$ iperf -c 192.168.0.1 -u -b 100M
------------------------------------------------------------
Client connecting to 192.168.0.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 160 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.2 port 59215 connected with 192.168.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 114 MBytes 95.7 Mbits/sec
[ 3] Sent 81410 datagrams
[ 3] Server Report:
[ 3] 0.0-10.1 sec 114 MBytes 95.0 Mbits/sec 0.037 ms 15/81409 (0.018%)
[ 3] 0.0-10.1 sec 1 datagrams received out-of-order
« OpenFlowスイッチ(Open vSwitch)の性能測定 | トップページ | OpenFlow性能測定 (第3弾) »
「OpenFlow」カテゴリの記事
- ◆ 【Open vSwitchのみで OpenFlowプログラミング】VLAN ID コンバータ 改(2013.08.10)
- ◆ 【Open vSwitchのみで OpenFlowプログラミング】VLAN ID コンバータ(2013.08.05)
- ◆ 【TremaでOpenFlowプログラミング】VLAN ID コンバータ(2013.05.12)
- ◆ Linux のネットワークネームスペース機能と Open vSwitch で仮想ネットワーク(OpenFlowスイッチとTrema)(2013.05.11)
- ◆ OpenFlow 1.0.0 メッセージと Trema API(Ruby) との対応表(2013.05.08)
「Trema」カテゴリの記事
- ◆【改訂】OpenFlow フレームワーク Trema 0.4 のインストール手順【0.4.7対応】(2014.06.11)
- ◆ Trema 0.4.7インストール失敗とバージョン指定インストール(2014.06.08)
- ◆ OpenFlowフレームワーク Trema 0.4 のインストール(2013.10.06)
- ◆ 【TremaでOpenFlowプログラミング】VLAN ID コンバータ(2013.05.12)
- ◆ Linux のネットワークネームスペース機能と Open vSwitch で仮想ネットワーク(OpenFlowスイッチとTrema)(2013.05.11)
この記事へのコメントは終了しました。
« OpenFlowスイッチ(Open vSwitch)の性能測定 | トップページ | OpenFlow性能測定 (第3弾) »
コメント