Many users transfer media around their home using SAMBA shares or FTP. Data can be transferred from USB or SATA hard drives with file systems ext4, NTFS and exFAT. ext4 is a native Linux file system, whereas NTFS and exFAT are Microsoft file systems. Since NTFS and exFAT are foreign file systems, Linux systems require drivers to read and write to these foreign file systems. Converting these foreign file systems requires CPU overhead which affects the data transfer rate. The purpose of these benchmarks is to show the performance for each file system on the Raspberry Pi, Pi 2 and Banana Pi over FTP and SAMBA. If you haven't already, you can check out my other benchmarks (General, Network Throughput SATA and Gigabit, Usenet Downloading and unRAR and PAR2)
Raspberry Pi 2 vs Banana Pi ext4 vs NTFS vs exFAT for SAMBA and FTP
Methodology
I used a Raspberry Pi and Pi 2 both running Minibian and a Banana Pi running Bananian. No devices were overclocked, so the table reflects the speeds used in these tests. It is important to note that the Raspberry Pi and Pi 2's ethernet and USB share the same bus which impairs performance. Also the Banana Pi's gigabit port is limited to 470 Mbit.
Pi Unit | ||||||||
---|---|---|---|---|---|---|---|---|
Raspberry Pi 3 | Quad Core | |||||||
Raspberry Pi 2 | Quad Core | |||||||
Raspberry Pi | Single Core | |||||||
Banana Pi | Dual Core | |||||||
Banana Pi Pro | Dual Core |
The same 160 GB 7200 RPM 2.5″ Hard Drive formatted as ext4 used in my other benchmarks along with a Banana Pi SATA Cable was the storage device in all tests.
The hard drive was formatted with ext4, NTFS and exFAT. The current NTFS-3G and exfat-utils were installed from the Debian Wheezy repository. Current versions of vsftpd and SAMBA were installed from the Wheezy repositories as well.
I used robocopy for copying SAMBA files and FileZilla to transfer via FTP on an Alienware m14xr2.
ext4 Throughput Benchmarks
FTP
The Raspberry Pi can be uploaded to at a maximum rate of 7.49 MB/s
The Raspberry Pi 2 could take 10.75 MB/s for ftp uploads
The Banana Pi topped at 17.3 MB/s via USB and 26.3 MB/s using SATA for uploads
The Raspberry Pi could be downloaded from at 10 MB/s via FTP
The Raspberry Pi 2 could be downloaded from at 10.75 MB/s via FTP
The Banana Pi could be downloaded from at 27.4 MB/s via USB and 47.4 MB/s via SATA
The SATA benefit here on the Banana Pi is clear, ftp requires very little CPU overhead so maximum speeds are achievable on all devices. Furthermore using the native file system ext4 means even less overhead.
SAMBA
The Raspberry Pi could be uploaded to at 7.55 MB/s via SAMBA
The Raspberry Pi 2 could push uploads at 10.8 MB/s via SAMBA
The Banana Pi could be uploaded to at 26.45 MB/s via USB and 26.73 MB/s via SATA
The Raspberry Pi can be downloaded from at a maximum rate of 4.42 MB/s via SAMBA
The Raspberry Pi 2 can be downloaded from at 10.5 MB/s via SAMBA
The Banana Pi topped at 26.45 MB/s via USB and 26.73 MB/s using SATA for downloading from SAMBA
Strangely enough the SATA benefit of the Banana Pi is non-existent, this is most likely due to the CPU overhead of using SAMBA
NTFS Throughput Benchmarks
FTP
The Raspberry Pi could be uploaded to at only 1.66 MB/s via FTP using NTFS
The Raspberry Pi 2 could be uploaded to at 10.52 MB/s via FTP using NTFS
The Banana Pi could be uploaded to at 7.7 MB/s using USB and 6.49 MB/s using SATA
The NTFS-3G write driver underperforms because it is very CPU intensive, this is why the Pi 2 can beat the Banana Pi because the Pi 2 has 4 cores compared to the Pi 2's 2 cores.
The Raspberry Pi could be downloaded from at 4.06 MB/s via FTP using NTFS
The Raspberry Pi 2 could be downloaded from at 11.11 MB/s via FTP using NTFS
The Banana Pi could be downloaded from at 29.4 MB/s using USB and 38.45 MB/s using SATA
The NTFS-3G read driver is clearly more efficient allowing better performance and the benefits of SATA become clear.
SAMBA
The Raspberry Pi could be uploaded to at 7.55 MB/s via SAMBA with NTFS
The Raspberry Pi 2 could push uploads at 10.8 MB/s via SAMBA with NTFS
The Banana Pi could be uploaded to at 26.45 MB/s via USB and 26.73 MB/s via SATA with NTFS
The Raspberry Pi can be downloaded from at a maximum rate of 4.42 MB/s with NTFS
The Raspberry Pi 2 can be downloaded from at 10.5 MB/s with NTFS
The Banana Pi topped at 26.45 MB/s via USB and 26.73 MB/s using SATA for downloading from SAMBA with NTFS
exFAT Throughput Benchmarks
FTP
The Raspberry Pi could be uploaded to at 4.97 MB/s via FTP with exFAT
The Raspberry Pi 2 could push uploads at 8.06 MB/s via FTP with exFAT
The Banana Pi could be uploaded to at 6.8 MB/s via USB and 7.52 MB/s via SATA with exFAT from FTP
The Raspberry Pi can be downloaded from at a maximum rate of 4.26 MB/s with exFAT from FTP
The Raspberry Pi 2 can be downloaded from at 8.54 MB/s with exFAT from FTP
The Banana Pi topped at 21.28 MB/s via USB and 26.32 MB/s using SATA for downloading from FTP with exFAT
SAMBA
The Raspberry Pi could be uploaded to at 4.46 MB/s via SAMBA with exFAT
The Raspberry Pi 2 could push uploads at 11.11 MB/s via SAMBA with exFAT
The Banana Pi could be uploaded to at 12.04 MB/s via USB and 12.82 MB/s via SATA with exFAT from SAMBA
The Raspberry Pi can be downloaded from at a maximum rate of 4.07 MB/s with exFAT from SAMBA
The Raspberry Pi 2 can be downloaded from at 10.98 MB/s with exFAT from SAMBA
The Banana Pi topped at 20.07 MB/s via USB and 21.73 MB/s using SATA for downloading from SAMBA with exFAT
ext4 vs NTFS vs exFAT
FTP Upload
Here is a summary of the FTP upload data for each file system
ext4 is the clear winner, NTFS seems to be the better performer on multicore ARM architectures
FTP Download
Here is a summary of the FTP download data for each file system
ext4 is the clear winner, NTFS again outperforms exFAT on multicore ARM architectures
SAMBA Upload
Here is a summary of the SAMBA upload data for each file system
ext4 is superior, the exFAT write driver is more efficient than the NTFS-3G write driver when using SAMBA shares
SAMBA Download
Here is a summary of the SAMBA upload data for each file system
ext4 is again the top performer, the exFAT read driver slightly outperforms the NTFS-3G read driver when using SAMBA shares
Conclusion
These benchmarks comprehensively compared file sharing over a network using the file systems ext4, NTFS and exFAT over FTP and SAMBA shares with the Raspberry Pi, Pi 2 and Banana Pi. Unsurprisingly, ext4 the native Linux file system had the best performance over FTP, SAMBA nearly halved the data transfer rate on the Banana Pi indicating a large CPU overhead. As I have mentioned in other benchmarks, using FTP to access media files is ideal and can be done using Kodi (XBMC) based media centers. FTP will always be preferable to SAMBA for transfers so I would recommend only using SAMBA for convenience to delete and manage files rather than large transfers.
In general the write drivers for foreign file systems are slower than the read drivers. You are better off transferring via FTP for maximum speed, again SAMBA should only be used to do minor management rather than large transfers. NTFS and exFAT could be useful for users that already have their media stored on such a file system and do not have the equipment to migrate to ext4 or they want to keep it as NTFS or exFAT so it can be easily read by Windows machines.
It is important to not only think of the significance of transfer rates, some people on reddit have mentioned that streaming media does not always require that much bandwidth. However, the CPU overhead from using foreign file systems like NTFS and exFAT combined with SAMBA may be significant. Unfortunately, I did not record CPU usage for these tests so it may just be the drivers that need optimizing. If anybody has suggestions for automating the CPU usage so I can get accurate data please leave a comment or use the contact form.
I am looking forward to a Raspberry Pi model that at least includes gigabit. I am looking more forward to testing the Orange Pi Plus which should be here any day now which sports a quad core 1.6 GHz CPU with SATA and gigabit. The Banana Pi crew will be releasing an updated model later this year which I expect to have 4 cores too.
The Raspberry Pi 2, Banana Pi and Pro are available on Amazon, AliExpress and eBay. The Pro version includes 802.11n Wifi for those who are not wired for ethernet in their home.
Pi Unit | ||||||||
---|---|---|---|---|---|---|---|---|
Raspberry Pi 3 | Quad Core | |||||||
Raspberry Pi 2 | Quad Core | |||||||
Raspberry Pi | Single Core | |||||||
Banana Pi | Dual Core | |||||||
Banana Pi Pro | Dual Core |