I have a small NAS, a Western Digital MyBook World Edition, which is a small Linux box with an ARM processor, using Linux Kernel version 2.6.24.4 and 128 MB RAM.
I'm trying to understand what's the best way to connect to the shared folders in the NAS in terms of performance. This NAS has the ability to share folders using either SMB/CIFS, NFS and FTP.
I know for experience that SMB access is "heavy" in terms of CPU and memory utilization on this little NAS: backing up thousands of little files takes ages, also because at a certain point the NAS will start to swap. So I was intrigued by the possibility to use NFS now that I installed Linux on my client PC too. I was expecting NFS to give me better performance and less resource utilization... but I was surprised by my initial tests.
First of all, I didn't try to read/write many small files, but I just tested the performance with the copy of a big file from the NAS. However, the results were quite embarrassing:
- copying a big file from the NAS using KDE Dolphin and accessing the shared folder by using Dolphin built-in ability to browse the NAS contents using ftp:/ protocol brought a maximum read rate of around 70MB/s
- copying the same file from the NAS with Dolphin, after having mounted its shared folder using "mount -t cifs //nas/shared-folder /mnt/test" brought a maximum read rate of around 60 MB/s with a CPU utilization on the NAS of more than 70%
- copying the same file from the NAS with Dolphin, after having mounted its shared folder using "mount nas:/shared-folder /mnt/test" brought a maximum read rate of around 21 MB/s with a CPU utilization on the NAS of more than 90% during the whole transfer
So, in this test, the NFS performance was roughly 1/3 of the SMB performance, which is near the FTP performance. This was surprising.
Any networking expert here can tell me his/her opinion on this? Any suggestion/magic recipe to improve the NFS performance on my setup? Should I give up and stick with SMB and/or FTP?
Thanks in advance.