When we use Intel 10G NIC as a port of Linux bridge, performance may be very low for communications through bridge.
Now, we think about the composition described below as an example.
ifcfg-br0 DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet HWADDR=xx:xx:xx:xx:xx:xx ONBOOT=yes BRIDGE=br0 ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet HWADDR=yy:yy:yy:yy:yy:yy ONBOOT=yes BRIDGE=br0
Here, The NICs for eth0 and eth1 are Intel 10G NICs driven by ixgbe.
Sometimes the throughput eth0 and eth1 is much smaller than one between eth0 and HOST on br0. This is because the RSC function of ixgbe driver, which assembles the small incoming packets to bigger one, is ON as default.
When this option is adapted to NIC, receive packets may be passed to bridge device with a big size unless its traffic is very less. In the case that these packets are passed to TCP/IP layer, it works fine because TCP/IP layer can receive any size of packets.
But, if these packets are passed to eth1 , the sending side of LAN driver checks the size of packets and the packets may be dropped because their size may exceed the MTU of eth1.
In many cases connections will be kept by resending. But, the performance may be made extremely low.
To avoid this problem, RSC function must be disabled under the environment with bridge.
- Release Number: 6.0GA
- Architecture: all
- Kernel Version: linux-2.6.32-71.el6
- Related Package Version: 2.0.62-k2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.