-
Notifications
You must be signed in to change notification settings - Fork 100
Benchmarks
Benchmarks of file sharing server transfer speeds.
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.
- Server: Debian 12
- Client: macOS Sonoma
- Network: Both connected to the same Wi-Fi AP
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
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 [email protected], 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 [email protected] 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 [email protected] 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 [email protected] 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 |
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.
Resources
- Getting Started
- FAQ
- Troubleshooting
- Connect to AFP Server
- Webmin Module
- Benchmarks
- Interoperability with Samba
OS Specific Guides
- Installing Netatalk on Alpine Linux
- Installing Netatalk on Debian Linux
- Installing Netatalk on Fedora Linux
- Installing Netatalk on FreeBSD
- Installing Netatalk on macOS
- Installing Netatalk on NetBSD
- Installing Netatalk on OmniOS
- Installing Netatalk on OpenBSD
- Installing Netatalk on OpenIndiana
- Installing Netatalk on openSUSE
- Installing Netatalk on Solaris
- Installing Netatalk on Ubuntu
Tech Notes
- Kerberos
- Special Files and Folders
- Spotlight
- MySQL CNID Backend
- Slow AFP read performance
- Limiting Time Machine volumes
- Netatalk and ZFS nbmand property
Retro AFP
Development