Thanks for doing benchmarking.
I did two years ago similar tests and there is an analysis of the
performances at:
http://lxc.sourceforge.net/network/benchs.php
It is not up to date, but that will give you some clues of what is
happening with this overhead.
Yeah, definitively the macvlan interfaces is the best in terms of
performances but with the restriction of not being able to communicate
between containers on the same hosts.
There are some discussions around that:
http://marc.info/?l=linux-netdev&m=123643508124711&w=2
The veth is a virtual device hence it has not offloading. When the
packet are sent out, the network stack looks at the nic offloading
capability which is not present. So the kernel will compute the
checksums instead of letting the nic to do that either if the packet is
transmitted through the physical nic. This is a well known issue related
to network virtualization and xen has developed a specific network driver:
http://www.cse.psu.edu/~bhuvan/teaching/spring06/papers/xen-net-opt.pdf
Yes, bridging adds some overhead and AFAIR bridging + netfilter does
some skb copy.
Hmm, good question :)
I would recommend to use the 2.6.29-rc8 vanilla because this kernel does
no longer need patches, a lot of fixes were done in the network
namespace and maybe the bridge has been improved in the meantime :)
The performances question is more related to the network virtualization
implementation and should be sent to netdev@ and containers@ (added in
the Cc' of this email), of course people at lxc-devel@ will be
interested by these aspects, so lxc-devel@ is the right mailing list too.
Thanks for your testings
-- Daniel
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html