Downloading from usenet almost always require some post-processing. Repairing missing articles using PAR2 files requires a lot of CPU power while unpacking files requires a fast I/O system – think SATA being faster than USB in terms of input and output. I discussed this at great length with NZBGet's developer hugbug who shares the same passion for the scientific method and data that I do and together we prepared nzb files and a battery of tests that show how long Raspberry Pi and its alternatives take to post process releases. This took a whole week of preparation and testing but I cannot think of a more comprehensive and reasonable way to evaluate these devices as usenet downloaders for a low powered ARM media server.
Raspberry Pi 2 vs Banana Pi Pro unRAR PAR2 Benchmarks
Hardware and Software
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.
|Raspberry Pi 3|
|Raspberry Pi 2|
|Banana Pi Pro|
NZBGet and Sabnzbd were tested. NZBGet had QuickPar enabled with multithreaded PAR2 repair support. Sabnzbd only has multithreaded CPU support for x86 and x64 platforms.
Other options like ArticleCache used to speed up processing made no significant difference in the unRAR and PAR2 tests so were not included. Using an SSD hard drive made no difference either.
1.2 GB, 4.7 and 8 video files were packaged using RAR5 format with the store setting meaning there was minimal compression.
The latest unrar 5.2.1 was installed on all devices which is used by both Sabnzbd and NZBGet.
Unpacking a 1.2 GB video file ranged from 1:30 to 2:46 which should be acceptable to most users.
Unpacking a 4.7 GB video file took anywhere from 6 minutes to 11 minutes.
Unpacking an 8 GB video file took 11 minutes to over 20 minutes.
For all of these unpacking tests on USB, the Raspberry Pi 2 and Banana Pi are similar in performance.
USB vs SATA unRAR
I wanted to test whether SATA vs USB mattered for unpacking rared media files.
The 1.2 GB file took 1 minute and 30 seconds on the Raspberry Pi 2 and 1 minute and 3 seconds on the Banana Pi using SATA.
The 4.7 GB file took 6 minutes on the Raspberry Pi 2 and 4 minutes on the Banana Pi using SATA.
The 8 GB file took 11 minutes and 33 seconds on the Raspberry Pi 2 and 7 minutes and 42 seconds on the Banana Pi.
Overall, using SATA on the Banana Pi results in roughly a 33% speed improvement over USB on the Pi 2.
It is important to note that if you use password protected rar files then the unpacking times will be significantly higher because decryption is a very CPU intensive task. I cannot recommend unpacking large encrypted rar files on any of these devices unless you are incredibly patient.
The same video files were packaged using AutoRarPar with a 38400 block size for the PAR2 files and 50 MB for the rar file size.
The nzb files were manipulated to have 8 missing articles each which is unlikely to happen often in real life and is closer to representative of a worst case scenario – though you can have significantly more damaged nzbs if you are extremely unlucky.
The hard drive was connected via USB on all the devices. I did some preliminary tests using SATA and there was no benefit for PAR2 files.
1.2 GB PAR2 Repair
The Raspberry Pi took over 4 minutes in both Sabnzbd and NZBGet – 33 seconds per block
The Raspberry Pi 2 and Banana Pi took around 2 minutes in Sabnzbd – 20 seconds per block
The Raspberry Pi 2 took 1 minute and 10 seconds whereas the Banana Pi took 1 minute and 30 seconds which is 10 seconds per block
The Raspberry Pi 2's quad core CPU is finally getting put to some use in these benchmarks making it the winner.
You can see that on these low powered units with multiple CPU cores, using NZBGet with its multithreaded PAR feature can halve your repair time.
4.7 GB PAR2 Repair
The Raspberry Pi takes over 14 minutes in both Sabnzbd and NZBGet
The Raspberry Pi 2 repaired the 4.7 GB release in 8 minutes and 19 seconds in Sabnzbd, in NZBGet it took 4 minutes and 14 seconds.
The Banana Pi took over 5 minutes in Sabnzbd and NZBGet
8 GB PAR2 Repair
The Raspberry Pi took over 25 minutes to repair in Sabnzbd and NZBGet for the 8 GB release
The Raspberry Pi 2 took 16 minutes in Sabnzbd but only 7 minutes and 51 seconds in NZBGet
The Banana Pi took 12 minutes and 24 seconds in Sabnzbd and only 9 minutes and 31 seconds in NZBGet
The Raspberry Pi 2 with NZBGet is the clear winner because of its 4 CPU cores slightly beating the Banana Pi by at least a minute for larger releases.
Full PAR2 Repair and unRAR
This section gives an overview and breakdown of how long each process component takes on each device in Sabnzbd and NZBGet so you can get an idea of how long it will take to completely verify, repair and unpack various release sizes. For these tests the Raspberry Pi and Pi 2 had the hard drive connected via USB while the Banana Pi had the hard drive connected via SATA.
The same nzbs that were intentionally damaged and used in the PAR2 repair tests were also used here. The PAR2 numbers are from the PAR2 section but the unRAR data here is new (i.e. not from the unRAR section above), the PAR2 verify times were included here as well since they are a necessary part of post processing. You may be wondering why I didn't make a separate section showing verification times between Sabnzbd and NZBGet, when you see the verification times in the graph you will understand why.
Note that unpack times are higher here and do not necessarily reflect the times for all releases. AutoRarPar did not let me choose the store setting and defaults to normal compression. Your times could easily be 50% faster if you compare the unRAR times to unpack times in this section!
1.2 GB Complete Process
1.2 GB is typical for standard quality video files.
The Raspberry Pi took 11 minutes in Sabnzbd and 8 minutes and 29 seconds in NZBGet
The Raspberry Pi 2 took 6 minutes and 25 seconds in Sabnzbd and 3 minutes and 41 seconds in NZBGet
The Banana Pi took 5 minutes and 38 seconds in Sabnzbd and 3 minutes and 42 seconds in NZBGet
On the Raspberry Pi 2 and Banana Pi this should be an acceptable post processing time for a 1.2 GB release
4.7 GB Complete Process
4.7 GB is typical for low HD quality video files in 720p resolution.
The Raspberry Pi took 40 minutes in Sabnzbd and almost 33 minutes in NZBGet
The Raspberry Pi 2 took 23 minutes and 10 seconds in Sabnzbd and almost 14 minutes in NZBGet
The Banana Pi took almost 18 minutes in Sabnzbd and almost 14 minutes in NZBGet
8 GB Complete Process
8 GB is typical for high HD quality video files in 1080p resolution.
The Raspberry Pi took over an hour in Sabnzbd and NZBGet
The Raspberry Pi 2 took 43 minutes in Sabnzbd and almost 26 minutes in NZBGet
The Banana Pi took almost 34 minutes in Sabnzbd and almost 25 minutes in NZBGet
NZBGet on the Banana Pi is the winner though the Pi 2 was not far behind. These sorts of processing times may not be acceptable to you if you like to watch media soon after it is downloaded. Remember unpack times can be faster if the RAR compression used is just for storing which could mean complete process times as low as 15 minutes.
NZBGet is the clear favorite for post processing on low power ARM devices. Thanks to its QuickPar and multithreaded PAR2 repair features it easily defeats Sabnzbd. If a multithreaded native PAR2 application is ever available for ARM architectures then this could change. The Raspberry Pi 2 generally repairs faster than the Banana Pi because it has 2 extra cores, however the overall benefit is counterbalanced by the Banana Pi's SATA connection which speeds up unpacking.
New devices are on their way to market, I believe a quad core Banana Pi is being designed that will really speed up PAR2 repairs in which case the Raspberry Pi 2 won't stand a chance. If you are able to wait the necessary time for your preferred sized releases to be processed then a Raspberry Pi 2 or Banana Pi may be a viable option for a usenet downloader. What you lose in time you make up for in electricity costs, but only you can decide if it is worth it depending on your needs.
|Raspberry Pi 3|
|Raspberry Pi 2|
|Banana Pi Pro|