Abysmal re(4) performance under 8.1-STABLE (mid-August)
Ulrich Spörlein
uqs at spoerlein.net
Sat Nov 6 09:37:02 UTC 2010
Hello Pyun,
On this new server, I cannot get more than ~280kByte/s up/downstream out of
re(4) without any tweaking.
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
ether 00:21:85:63:74:34
inet6 fe80::221:85ff:fe63:7434%re0 prefixlen 64 scopeid 0x1
inet 46.4.12.147 netmask 0xffffffc0 broadcast 46.4.12.191
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
media: Ethernet autoselect (100baseTX <half-duplex>)
status: active
re0 at pci0:2:0:0: class=0x020000 card=0x368c1462 chip=0x816810ec rev=0x01 hdr=0x00
vendor = 'Realtek Semiconductor'
device = 'Gigabit Ethernet NIC(NDIS 6.0) (RTL8168/8111/8111c)'
class = network
subclass = ethernet
re0: <RealTek 8168/8111 B/C/CP/D/DP/E PCIe Gigabit Ethernet> port 0xd800-0xd8ff mem 0xfeaff000-0xfeafffff irq 19 at device 0.0 on pci2
re0: Using 1 MSI messages
re0: Chip rev. 0x38000000
re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus0
rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
re0: Ethernet address: 00:21:85:63:74:34
re0: [FILTER]
It's interesting to note, that re0 only negotiates half-duplex, where
linux will negotiate full-duplex (and gets ~10MByte/s as expected).
Next, I disabled almost all options, except that I cannot disable
VLAN_MTU, VLAN_HWCSUM. I also forced the adapter into full-duplex.
# ifconfig re0 -vlanmtu
# ifconfig re0 -vlanhwcsum
ifconfig: -vlanhwcsum: bad value
# ifconfig re0
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=88<VLAN_MTU,VLAN_HWCSUM>
ether 00:21:85:63:74:34
inet6 fe80::221:85ff:fe63:7434%re0 prefixlen 64 scopeid 0x1
inet 46.4.12.147 netmask 0xffffffc0 broadcast 46.4.12.191
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
media: Ethernet 100baseTX <full-duplex> (100baseTX <half-duplex>)
status: active
If I then immediately start the test-download, I get a ~2MByte/s spike,
which quickly returns to something around 250kByte/s.
Booting with
hw.pci.enable_msix=0
hw.pci.enable_msi=0
I can get almost up to 400kByte/s, but this may be coincidence.
So this is usually as far as it gets:
re0 in 190.504 KB/s 246.136 KB/s 66.709 MB
out 10.290 KB/s 12.985 KB/s 6.076 MB
But then I ran tcpdump in another session, and it looks like the ssh traffic on
the upstream of the interface will make the downloads running in another window
go faster:
re0 in 805.961 KB/s 1.577 MB/s 116.523 MB
out 222.940 KB/s 502.045 KB/s 19.267 MB
Any ideas?
Uli
More information about the freebsd-stable
mailing list