Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You might want to try enabling jumbo frames by setting the MTU to something >1500 bytes. Doing so should reduce the number of IRQs per unit of time since each frame will be carrying more data and therefore there will be fewer of them.

According to the Intel 82580EB datasheet[1] it supports an MTU of "9.5KB." It's unclear if that means 9500 or 9728 bytes.

I looked briefly for a datasheet that includes the ethernet specs. of the Broadcom 2711 but didn't immediately find anything.

Recent versions of iproute2 can output the maximum MTU of an interface via:

  # Look for "maxmtu" in the output
  ip -d link list
Barring that you can try incrementally upping the MTU until you run in to errors.

The MTU of an interface can be set via:

  ip link set $interface mtu $mtu
Note that for symmetrical testing via direct crossover you'll want to have the MTU be the same on each interface pair.

[1] https://www.intel.com/content/www/us/en/embedded/products/ne... (pg. 25, "Size of jumbo frames supported")



I set the MTU to its max (just over 9000 on the intel, heh), but that didn't make a difference. The one thing that did move the needle was overclocking the CPU to 2.147 GHz (from base 1.5 GHz clock), and that got me to 3.4 Gbps. So it seems to be a CPU constraint at this point.


Did you change the mtu of the other sides as well? If not tcp will negotiate an mss that makes the larger mtu go unused.


Oh shoot, completely forgot to do that, as I was testing a few things one after the other and it slipped my mind. I'll have to try and see if I can get a little more out.


I wonder if using user-space tcp stack (or anything that could bypass the kernel) could push the number higher.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: