I’m trying to figure out why my network is slower in one direction than in the other.
On one end I have a PC running Arch Linux, and on the other is a FreeNAS 9.10 server. Using
iperf, and connecting the two machines directly to rule out my switch being the problem, I’ve measured the following:
- FreeNAS to Arch, TCP, 1 thread: 941 Mbps
- FreeNAS to Arch, TCP, 5 threads: 943 Mbps
- FreeNAS to Arch, UDP, 1 thread: 782 Mbps
- Arch to FreeNAS, TCP 1 thread: 253 Mbps
- Arch to FreeNAS, TCP 5 threads: 931 Mbps
- FreeNAS to Arch, UDP, 1 thread: 947 Mbps
All of these results seem reasonable to me except #4. #3 is a little low, but
iperf does max out the CPU on the FreeNAS server in that test so I’m guessing Gigabit UDP is just too CPU-intensive for an Atom C2750 (?). Anyway, the problem is #4. I can’t make sense of it in light of #5. It can’t be either of the NICs, right? There has to be some setting limiting upload bandwidth per connection, but what could it be? And where could it be?
Here’s the output of
ip a l enp3s0 on Arch: (Don’t ask me why my interface is called that, it was something NetworkManager decided, I think.)
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000 link/ether [REDACTED] brd ff:ff:ff:ff:ff:ff inet 192.168.1.10/24 brd 192.168.1.255 scope global noprefixroute enp3s0 valid_lft forever preferred_lft forever inet6 [REDACTED]/64 scope link valid_lft forever preferred_lft forever
ifconfig igb0 on FreeNAS:
igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 9000 options=2400b9<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO,RXCSUM_IPV6> ether [REDACTED] inet 192.168.1.50 netmask 0xffffff00 broadcast 192.168.1.255 nd6 options=9<PERFORMNUD,IFDISABLED> media: Ethernet autoselect (1000baseT <full-duplex>) status: active
Do any of these arcane flags and options look suspicious?
I also found this tool called
ethtool which is apparently useful for diagnosing stuff. It says this:
Settings for enp3s0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown Current message level: 0x000060e4 (24804) link ifup rx_err tx_err hw wol Link detected: yes
Does that mean something? I don’t even know. Halp.