Networking – NAS storage slow wired network speed (Netgear WNDR3700 router)

nasnetworkingperformancerouter

I set up the D-LINK DNS 323 NAS unit with RAID 1 (dual 2TB 5400 RPM drives)

It works, but it is slow when copying files between my computer and itself (8 minutes to copy a 7.94GB file between the NAS and my PC via wire).

I am using a Netgear WNDR3700 gigabit router. I replaced the network wires to the latest specification, and my computer has a Realtek PCIe GBE network adapter.

I'm using these network cables: http://goo.gl/sGfPi

  • Transferring from the PC -> NAS is 16 MB/sec
  • Transferring from the NAS -> PC is 22 MB/sec

This is looking more and more like the NAS RAID 1 is the bottleneck. Possibly 7200 RPM drives would have worked better?

Best Answer

I think you neither have a cable nor a switch issue. The NAS is simply at its limit.

I have installed some D-Link DNS-323 as well and none of them did significantly higher transfer speeds than ~20MB/s in average. No matter what disks you put there. The reason is simply that the embedded Samba file server is limited by CPU speed and the CPU in the D-Link DNS-323 simply cannot handle any more data. Well, the limit might vary slightly on different firmware/Samba versions but I doubt you can reach much more. RAID-1 of course could limit the transfer speed further, but RAID-1 usually does not impose much CPU load as there is no calculation (like in RAID-5) required.

If you need more throughput you will have to replace the NAS by something faster.

It's also not related to the disks usually. Modern 5400rpm disks can easily read ~100MB/s in sequential mode. Even slow models shall reach ~50MB/s.

Another issue is protocol overhead and other protocol limitation. Some NAS offer the feature to transfer files via the very simple FTP protocol or using rsync. Some of them perform better on FTP than they do on SMB/CIFS vis Samba.

If you're using Windows Vista or 7 then you might also try to disable the "Remote Differential Compression" feature in Windows settings:

  • Control Panel => Uninstall => Turn Windows Features on or off) or
  • type ocsetup MSRDC-Infrastructure /uninstall on an elevated command prompt

The reason why swithcing of RDC might gain some speed is that it reduces the CPU load in some situations and since this is the bootleneck for your DNS-323 you might give it a try.

EDIT: I've done some more research on the RDC service and found this. It clearly proves that RDC shall not have any impact on transfer speeds. Moreover it needs to be specifically used by an application and Windows does not seem to use it. So I would recommend not to disable it permanently. If you disable it and see some speedup after reboot it's likely that you would also have seen the same speedup just by rebooting. Although there is one aspect which is not covered by the article. In case an application really uses RDC the server would have to calculate checksums which is of course not a big deal for today servers and workstations. But for a NAS system it might be. So in rare cases it might be faster to just re-transfer the file instead of creating and exchanging checksums first.

Even pretty fast NAS devices often are limited to around 80MB/s. If you want to reach more you typically need a NAS/Server which supports SMB2 protocol. Enabling Jumbo-Frames might give some boost too but it needs to be supported by really all components in your network, including Router, Switch, Client and NAS. So if you're not a networking expert I recommend not to mess with MTU/Jumbo-Frames manually.

Another source of "low" Ethernet performance is of course the network interface card (NIC) itself. I've seen some performance drops on some older Marvell chipset when hardware TCP-checksum offload was enabled (seems to be some limitation on the number of checksums calculated by some NIC so the CPU could do it faster than the card). On the other hand I've seen network throughput increasing in very high bandwidth situations with hardware TCP-checksumming offload on Intel server NIC. So it really depends on the hardware.

However even without any tuning any consumer NIC (most widely used: Realtek) shall reach ~80MB/s RAW GBE throughput from a Samba server.

But back to topic: Your D-LINK DNS-323 will never be able to exceed the ~30MB/s limit I guess, simply due to hardware limitation. If someone has seen this device to perform faster I would be interested in the concrete setup too.

Related Question