Why host transmit rate on 1Gb ethernet is only ~750Mbps ?

Yuri yuri at rawbw.com
Sat Apr 14 18:20:54 UTC 2012


I am running some tests with gigabit switch between two 9.0 hosts using 
iperf.
The best UDP transmit rate I am getting is 753 Mbits/sec with ~3-6% 
packet loss @1500 MTU @ 2.5GHz CPU, even though command 'iperf -c 
X.X.X.X -u -b 1000m' requests the full gigabit.

I am trying to understand what exactly usually limits the speed with one 
way ethernet traffic and also what causes the packet loss.
Is it the host's CPU or rather the need to make ~83K system calls in 
order to send 1Gb of UDP data at 1500 MTU?
Is it the NIC or it's driver ('re' on source and 'em' on destination in 
my case)?
Is it the router which is maybe too old? (Linksys EG008W, with tcpdump I 
made sure there is no ICMP traffic that is coming back from the router 
during the test).

Why can't NIC send say 900 Mbps with MTU 1500 since the only overhead is 
ethernet+UDP headers which are ~120bytes out of 1500?
Why packet loss occurs in such a simple network with just one switch and 
speeds of 75% of the maximum?
How can I troubleshoot such situation and understand the reasons?

Yuri


More information about the freebsd-net mailing list