AFP, SMB, NFS which is the best data transfer protocol?
You should find this article interesting:
iSCSI, AFP, SMB, and NFS performance with Mac OS X 10.5.5 clients.
It shows these test results:
(in seconds)
iSCSI 134.267530
AFP 140.285572
SMB 159.061026
NFSv3 (w/o tuning) 477.432503
NFSv3 (w/tuning) 293.994605
I have made some real world, non-scientific tests of i/o speeds of iscsi and different network protocols in OS X.
My setup:
- Early 2011 MPB runnig OS X 10.7 Lion, connected to Netgear gigabit switch
- Qnap TS-419P II NAS with 4 disks in RAID5, connected to Netgear gigabit switch
- Buffalo LinkStation Pro NAS with 1 disk, connected to Netgear gigabit switch
- globalSAN iSCSI initiator for OS X was used for iSCSI tests
The test was made by copying (cp) about 2gb of camera raw files (each about 20-25mb in size) to the device, restarting the device and copy the same data back to local SSD drive.
Write performance:
- Qnap, Async NFS = 34.59 mb/s
- Qnap, AFP = 31.83 mb/s
- Qnap, ISCSI = 31.89 mb/s
- *Qnap, SMB, cp = 30.71 mb/s
- Qnap, NFS = 27.22 mb/s
- Buffalo, AFP = 10.07 mb/s
- *Qnap, SMB, mv = 3.93 mb/s
*) Only when using SMB I got very different write performance results from copying the files to device using cp or mv command!
Settings the async option for NFS greatly improves the read performance. I use the following mount command for the test:
mount -t nfs -o resvport,soft,intr,rsize=32768,wsize=32768,timeo=900,retrans=3,proto=tcp,vers=3,async server:/share /private/share/
Read performance:
- Qnap, Async NFS = 71.99 mb/s
- Qnap, AFP = 67.44 mb/s
- Qnap, ISCSI = 60.22 mb/s
- Qnap, NFS = 46.51 mb/s
- Qnap, SMB = 35.82 mb/s
- Buffalo, AFP = 5.46 mb/s
The protocols seems to handle caching differently. This is the results I got when copying the files to the device and immediately back to the local SSD drive (without restarting the device)
Read performance - without restart
- Qnap, ISCSI = 151.71 mb/s
- Buffalo, AFP = 145.54 mb/s
- Qnap, AFP = 143.23 mb/s
- Qnap, Async NFS = 71.99 mb/s
- Qnap, NFS = 47.37 mb/s
- Qnap, SMB = 38.13 mb/s
My conclusion: I will use either AFP or NFS since both protocols gives similar performance and flexibility (compared to iSCSI) for my purposes (Lightroom, backup, media streaming)
Although they are data transfer protocol, I would like to remind you they don't accept the same characters as file name. For example, \ / : * ? ” < > | are not allowed in Windows NTFS and Samba.
It happens to Apple Talk protocol from my experience on MacOS 8.6 and Windows 95 running AppleTalk compatible service. Some characters in file names are allowed in MacOS are invalid to Windows.
Detail about my experience copying files from Linux Desktop to QNAP TS-212P running Samba and NFS can be found in Performance Comparison on Backup Linux Files to QNAP TS-212P. The test result in MB/s to what interests you are:
- Samba mount by command in terminal: Read 63, write 43
- NFS mount by command in terminal: Read 71.8, write 31.8
I have done a test with FTP, Samba, iSCSI, and NFS in File Transmission with Different Sharing Solution on NAS with QNAP TS-112. The test result in MB/s to what interests you are:
- Samba mount by Nautilus: Read 24.4, write 18.6
- Samba mount by command in terminal: Read 56.4, write 36.3
- NFS mount by command in terminal: Read 42.5, write 20.6
Therefore, Samba is faster than NFS from my experience. But some of my files contains illegal characters in NTFS and Samba, I choose to use NFS as my primary protocol.
Wish it helps!