TenForward

技術ブログ。はてなダイアリーから移転しました

lxc の仮想ネットワークのパフォーマンス測定

先日,kvm の仮想 NIC やネットワーク構成を変えてパフォーマンス測定を行いました (→SR-IOV を有効にする(3) - TenForwardの日記) が,それと同じようなテストを lxc でネットワーク構成を変えてやってみました.

テスト環境

  • OS は Ubuntu Linux 11.10 を使っています.
  • コンテナは Ubuntu 11.10 コンテナを lxc-create コマンドで作成しています.

仮想ネットワークとして lxc の設定ファイルで以下を指定してテストを行っています.

  • veth
  • macvlan (bridgeモード)
  • phys(SR-IOV)
  • phys(物理ポート)

iperf (TCP)

普通に iperf を実行した時の結果です.以下のように特にオプションもつけずに普通に実行しています.

$ iperf -s (サーバ側)
$ iperf 172.16.44.14 (クライアント側)

実行中の VM が稼働しているホストの CPU 負荷も測定しました.3 回実行した時の平均値です.

仮想ネットワーク iperf(Mbits/sec) %user %system
veth 936 0.07 8.29
macvlan 935 0.18 3.46
phys(SR-IOV) 935 0.17 8.45
phys(物理ポート) 936 0.11 3.60

netperf(UDP)

netperf で UDP の 50byte のパケットを投げて測定してみました.

$ netperf -t UDP_STREAM -H 172.16.44.14 -- -m 50
仮想ネットワーク netperf(Mbits/sec) %user %system
veth 97.13 0.19 3.69
macvlan 97.93 0.34 3.96
phys(SR-IOV) 45.88 0.21 22.41
phys(物理ポート) 98.25 0.3 4.78

lmbench (lat_tcp)

lmbench 付属の lat_tcp コマンドでレイテンシを測定してみました.

$ ./lat_tcp -s (サーバ側)
$ ./lat_tcp 172.16.44.14
仮想ネットワーク lat_tcp(microseconds)
veth 129
macvlan 102
phys(SR-IOV) 492
phys(物理ポート) 92