netatalk.io

Benchmarks

Netatalk Benchmarks

Benchmarks of file sharing server transfer speeds.

Comparative File Transfers

March 2024

The following benchmarks illustrate differences in file transfer speeds between Netatalk, Samba, and NFS.

Upload is a transfer from client to server. Download is a transfer from server to client.

Three data points per test case, with the median result is marked in bold below. Lower is better.

Server App 1x 2GB file Upload Download 1000x 10KB files Upload Download
Netatalk 3.1.18 42 45 46 44 45 48 84 86 94 50 55 58
Samba 4.17.12 45 47 52 45 48 52 99 100 101 53 53 54
NFS 2.6.2 204 205 208 136 139 139 97 97 99 24 24 25

Unit is seconds, rounded down to the integer

Results lantest version 0.x

January 2011

AFP Loadbalancing or Failover with multipe nodes each running Netatalk ontop of a cluster filesystem like GFS or OCFS.

The basic trick is to configure all Netatalk nodes to use one specific CNID server.

Some benchmark results follow below.

Test Test details Read 200 files Write 30 MB Read 30 MB Lock/Unlock 4000x Enumerate 320 files Create ditree w. 10³ dirs
1 Linux x86_64, Xeon E5520@2.27GHz, FC RAID, ext3, localhost 0.235 s 0.116 s 0.053 s 0.472 s 0.426 s 0.548 s
2 Opensolaris x86_64, Phenom II X4@2.7 GHz, sATA, ZFS, localhost 0.047 s 0.061 s 0.040 s 0.139 s 3.334 s 11.885 s
3 HELIOS UB+ on Macpro x86 Xeon, builtin Harddisk, 100 MBit 0.301 s 3.077 s 2.957 s 3.997 s 0.014 s 1.587 s
4 Netatalk 2-node cluster on CentOS 5.4 x86 in Virtualbox VM on Opensolaris x86_64, Phenom II X4@2.7 GHz, iSCSI, GFS2, localhost 3.116 s 0.719 s 3.225 s 7.734 s 0.399 s 12.478 s
5 Same cluster as in 4), but this time with 2 cluster nodes running lantest concurrently 4.192 s 1.498 s 6.789 s 10.280 s 0.510 s 139.706 s
6 Netatalk 2-node cluster on Ubuntu 10beta1 x86 in Virtualbox VM on Opensolaris x86_64, Phenom II X4@2.7 GHz, iSCSI, OCFS2, localhost 0.170 s 0.780 s 0.583 s 0.839 s 0.111 s 1.336 s
7 Same cluster as in 6), but this time with 2 cluster nodes running lantest concurrently 0.490 s 0.858 s 1.366 s 1.646 s 0.276 s 41.288 s

Notes on individual tests

2) Prior to lantest version 1.0.0 this test time includes the time it took to create the test files. ZFS is just being safe here, honoring cache flush request from the CNID daemon. Currently the CNID daemon packs every CNID database modification into a dedicated database transaction which causes a cache flush. A fast ZIL may help.

4) A Netatalk Cluster using GFS2 as shared fs. Fast at some stuff, a little slow with other stuff. GFS2 is mounted with “noatime,nodiratime” options.

5) Apparently GFS2 doesn’t like creating directories… But note: ALL traffic, including clusterwide locking stuff AND iSCSI had to pass in and out the VMs, so I’d expect a custer with real hardware to perform much better.

6) Another Netatalk cluster exactly speced like 4), but this time with OCFS2. This tests a very fresh version of OCFS2 which brings support for POSIX byterange locks. Without them Netatalk would be foobared. GFS2/OCFS2 shootout: OCFS2 wins hands down! Note: I had forgotten to set noatime mount option, using that would probably make things even faster.

Footnotes

This is a mirror of the Netatalk GitHub Wiki. Please visit the original page if you want to correct an error or contribute new contents.

Last updated 2025-07-27