For NAS on the Home Network, it turns out GbE matters

For our computers at home we have a small network based on a standard wireless dual radio N/G router with 4x 1Gb Ethernet ports. However wireless performance in my office which is about 30 feet away from the router is poor (maybe 2Mb/s). We fixed this by creating a Ethernet over Power Line network (using the Netgear XAVB101) which works fine for most applications.

The one area that didn’t work well was transferring large files from and to our Network Attaches Storage (a 1 TB Buffalo LS-WTGL, predecessor to this model). Transfer speed from my MacBook Pro maxed out around 20 Mb/s. In other words filling the 1TB drive would take about 4.5 days. That’s a bit slow. How to fix it after the break.

The question was why it was slow? A list of possible bottlenecks include:

  1. The CPU of the Buffalo NAS Appliance. It’s fairly low end and not designed for  speed.
  2. Latency and loss from the Ethernet over Power
  3. The Linksys router
  4. Running over 100 Mb/s vs. 1Gb/s (which both MacBook and NAS Appliance support)
  5. The lack of Jumbo Frames on the MacBook Pro (which is just weak, Apple could have spend the extra 50 cents for a better part)
  6. Mac OS X, although that seems unlikely

It turns out it was probably a combination of (2) and (4). A quick trip to Fry’s to purchase a tiny Netgear GS105E (hardly big enough to fit 5 ethernet ports) and goodput jumped to about 110 Mb/s. An NTop trace is above, before 12:00 noon I was using the old setup, afterwards the GS105E. At over 100 Mb/s I am pretty sure I the CPU of the NAS Appliance is now the bottleneck. In practice 100 Mb/s seems sufficient for anything I am doing right now, even editing large RAW images or video stored on the NAS in Lightroom.

Lesson learned, if you want fast NAS at home, investing the $50 for a 1Gb switch and two CAT6 cables is worth it.

On a side note, the GS105E is pretty amazing. Something barely the size of a beer coaster with VLAN support and QoS. Now if it only would run OpenFlow/Indigo (Hi Dan…)