2012-01-14

WNDR3800 NAS performance


UPDATE: there are some news on the subject.

The WNDR3800 has an USB 2.0 port for connecting an external storage.
I've done some testing with an external disk.
The disk used was a 120GB Packard Bell Store and Save 2400 bought back in 2008.
Firmware version of the WNDR3800 was V1.0.0.24
Since the test disk was primarily used to share files between several machines, it was already formatted with NTFS for windows compatibility.

The WNDR3800 exports USB storage by an SMB share and by HTTP: I mounted the share under /mountpoint

So, let's check write performance by creating a test file:

# dd if=/dev/zero of=/mountpoint/testfile bs=4096 count=102400
102400+0 records in
102400+0 records out
419430400 bytes (419 MB) copied, 94.4866 s, 4.4 MB/s

And now read performance:

# dd if=/mountpoint/testfile of=/dev/null
819200+0 records in
819200+0 records out
419430400 bytes (419 MB) copied, 42.9255 s, 9.8 MB/s

Writing is often slower than reading, but 9.8MB/s is the throughput of a 100Mb Ethernet, and we're using Gigabit here.
Let's try with HTTP:

# wget -O /dev/null http://192.168.1.1/shares/USB_Storage/testfile
--2012-01-13 19:08:42--  http://192.168.1.1/shares/USB_Storage/testfile
Connecting to 192.168.1.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 419430400 (400M) [application/download]
Saving to: `/dev/null'

100%[======================================>] 419,430,400 13.6M/s   in 30s    

2012-01-13 19:09:12 (13.4 MB/s) - `/dev/null' saved [419430400/419430400]

HTTP has lower overhead than CIFS, but we're still far from the high performance we can expect.
Maybe the disk is the bottleneck?
Let's try connecting the disk directly to the USB port of the pc:

# dd if=/media/data_ntfs/testfile of=/dev/null
819200+0 records in
819200+0 records out
419430400 bytes (419 MB) copied, 15.1453 s, 27.7 MB/s

It's not the disk: it's able to reach nearly 30MB/s
And now the write performance:

# dd if=/dev/zero of=/media/data_ntfs/testfile bs=4096 count=102400
102400+0 records in
102400+0 records out
419430400 bytes (419 MB) copied, 14.5965 s, 28.7 MB/s

So, this disk is not slower while writing: it seems that the WNDR3800 slows things down.
Could it be the NTFS format? Let's try with a linux filesystem that the Netgear firmware may natively support.
I reformatted the disk with ext2 and retried with the WNDR3800 connection:

# dd if=/dev/zero of=/mountpoint/testfile bs=4096 count=102400
102400+0 records in
102400+0 records out
419430400 bytes (419 MB) copied, 21.423 s, 19.6 MB/s

That's a huge gain versus NTFS.
Read time:

# dd if=/mountpoint/testfile of=/dev/null
819200+0 records in
819200+0 records out
419430400 bytes (419 MB) copied, 35.0745 s, 12.0 MB/s

Again, better than NTFS but strangely enough, lower than writing.
Let's check HTTP:

# wget -O /dev/null http://192.168.1.1/shares/T_Drive/testfile
--2012-01-14 14:24:24--  http://192.168.1.1/shares/T_Drive/testfile
Connecting to 192.168.1.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 419430400 (400M) [application/download]
Saving to: `/dev/null'

100%[======================================>] 419,430,400 18.9M/s   in 22s    

2012-01-14 14:24:46 (18.2 MB/s) - `/dev/null' saved [419430400/419430400]

HTTP confirms its lower overhead, but again, lower performance than writing.
So partition format has a considerable impact on WNDR3800 NAS performance.
One last test may be the use of a really simple filesystem: FAT.
Back to square one with a FAT32 partition:
Write:

# dd if=/dev/zero of=/mountpoint/testfile bs=4096 count=102400
102400+0 records in
102400+0 records out
419430400 bytes (419 MB) copied, 28.7441 s, 14.6 MB/s

Read:

# dd if=/mountpoint/testfile of=/dev/null
819200+0 records in
819200+0 records out
419430400 bytes (419 MB) copied, 41.2611 s, 10.2 MB/s

# wget -O /dev/null http://192.168.1.1/shares/USB_Storage/testfile
--2012-01-14 14:38:28--  http://192.168.1.1/shares/USB_Storage/testfile
Connecting to 192.168.1.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 419430400 (400M) [application/download]
Saving to: `/dev/null'

100%[======================================>] 419,430,400 13.1M/s   in 29s    

2012-01-14 14:38:57 (13.8 MB/s) - `/dev/null' saved [419430400/419430400]

FAT does not boost performance, and even if it did, I wouldn't use FAT as a filesystem for anything serious.


Format Read MB/sWrite MB/s
local USB27.728.7
NTFS9.84.4
ext212.019.6
FAT10.214.6

UPDATE: there is a new firmware available that changes some of this results.

1 comment:

  1. Alessandro, Thank you very much for taking the time to write this. I'm just installing a ReadyShare drive on our WNDR3800 for local backups.

    You've saved me hours of trouble shooting time.

    ReplyDelete