AFP, SMB, NFS which is the best data transfer protocol?

44,946

Solution 1

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

Solution 2

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:

  1. Qnap, Async NFS = 34.59 mb/s
  2. Qnap, AFP = 31.83 mb/s
  3. Qnap, ISCSI = 31.89 mb/s
  4. *Qnap, SMB, cp = 30.71 mb/s
  5. Qnap, NFS = 27.22 mb/s
  6. Buffalo, AFP = 10.07 mb/s
  7. *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:

  1. Qnap, Async NFS = 71.99 mb/s
  2. Qnap, AFP = 67.44 mb/s
  3. Qnap, ISCSI = 60.22 mb/s
  4. Qnap, NFS = 46.51 mb/s
  5. Qnap, SMB = 35.82 mb/s
  6. 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

  1. Qnap, ISCSI = 151.71 mb/s
  2. Buffalo, AFP = 145.54 mb/s
  3. Qnap, AFP = 143.23 mb/s
  4. Qnap, Async NFS = 71.99 mb/s
  5. Qnap, NFS = 47.37 mb/s
  6. 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)

Solution 3

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:

  1. Samba mount by command in terminal: Read 63, write 43
  2. 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:

  1. Samba mount by Nautilus: Read 24.4, write 18.6
  2. Samba mount by command in terminal: Read 56.4, write 36.3
  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!

Solution 4

basically most (if not all) protocols can be used on any platform, but some of them are more native then another one

  • SMB - PC
  • AFP - MAC
  • NFS - NIX
Share:
44,946

Related videos on Youtube

Kami
Author by

Kami

Computer Science Student at the Swiss Federal Institute of Technology Love to code in Scala, Ruby, C, C++, Objective-C, PHP, Python Knowns but not appreciated: Java, Shell, Perl Want to learn: Haskell, Erlang

Updated on September 17, 2022

Comments

  • Kami
    Kami almost 2 years

    I have a computer with large hard disks running Gentoo. I have to serve med/big files via a wired network to Apple devices (all of them running OS X).

    Which protocol is the best for the following needs ? :

    1. Speed
    2. Ease of use (by the clients and the server)
    3. Less limited (max file size, limited charset for filenames)
    4. Security
  • Kami
    Kami over 14 years
    Okay I already know that but what about speed, ease of use, limitations and security ?
  • Jon Lasser
    Jon Lasser over 14 years
    The NFS v3 results reported are pretty lousy. In my moderately extensive work optimizing throughput for customers, NFS tends to be twice as fast or more than SMB. With one server, one host over a gigabit network with no other traffic, I can get 900 megabits per second for NFS when CIFS struggles past 250. That's not sustainable real-world throughput, to be sure, and doesn't invalidate these tests per se, but does make me quite suspicious about the results.
  • harrymc
    harrymc over 14 years
    @Jon Lasser: The trouble with such tests is that they are usually only correct for the hardware used AND the nature of the test. In general, they are at best only weak indicators.
  • harrymc
    harrymc over 14 years
    @Kami: I can't answer that, as per my comment above to Jon Lasser. If you have the time, you might try to duplicate these test results on your hardware. If they differ in any way, it might be interesting for you to publish it here.
  • Haravikk
    Haravikk about 10 years
    Not sure why this would get down voted, except maybe that it's a touch simplistic; AFP has the advantage on Mac because it has the best driver, OS X's NFS support isn't great, and SMB is better on more recent OS X versions. So a big factor of performance is protocol support at both ends; a NAS with a good AFP driver will be best for Mac users in most cases, for example.