SABnzbd

Wiki

User Manual FAQ Contact Introduction Installation Configuration Scripts Advanced Topics Extensions for SABnzbd

Incorrect or missing information? High speed Downloading

If you have a fast Internet connection (60MB/s aka 500 Mbps, and over) and are not getting the full speeds you require, you can try the following:

Basic requirements for your system and Internet connection

The bottom line for high speed downloading is easy: Start with a test of your system: Check at Wrench -> Status -> Refresh symbol, and note the performance numbers reported, and check them against these required values:
  1. Both Incomplete and Complete should be on a SSD/M.2/NVMe disk. If you have limited space then the Incomplete directory should be on SSD. SABnzbd should report the speed of Incomplete and Complete at least 150 MB/s. Slower disks like HDD and NAS have a very negative impact on downloading speed: a slower disk means slower downloads.
  2. Your CPU should be medium or high speed. SABnzbd should report a pysthone of 100.000 or higher.
  3. Use multiple news servers at the same priority. This may allow higher speed as they can all download at the same time.
  4. Start with a test download: Wrench -> Test Download -> 1000 MB.
- On a system with a CPU with at least 100,000 pystones, and SSD drives achieving 150 MB/s, a Gigabit Internet connection reported as 100 MB/s by SAB you should be able to get 100 MB/s newsgroup downloads.

If you are posting a question if you think your download speed is too low, post the info reported by the Wrench tool.

Additional settings for high-speed downloading

If your focus is on pure high-speed downloading itself then you should let SABnzbd do downloading only (and not any simultaneous processing). The following settings may help (in order of importance):

  1. Turn on "Pause Downloading During Post-Processing" in Config->Switches. SABnbd will first download, and after downloading it will start processing
  2. Turn off DirectUnpack in Config->Switches. More concurrent disk activity may reduce the speed.
  3. Turn off SSL in Config->Servers. This will disable encrypted transfer and reduce CPU load.
  4. Turn off Unwanted Extensions in Config->Switches.
  5. For testing only: set the download to Download in Config->Categories, so no Repair, no Unpack at all.

More detailed optimizations

  1. Use a wired network connection, not wireless.
    Test your speed via fast.com. Divide the result from fast.com by 8 to get the speed in MB/s.
  2. Set the Article Cache Limit in Config->General.
    This will keep articles in memory until they can be written to the correct file instead of first writing them to individual temporary files which has to be read back later. Depending on how much RAM you can spare, two good values are 500M (the M denotes megabytes) or 1G (1GB). If you download a lot of rar files that are 200MB or larger then use the latter value. The cache will only be used when necessary, cache usages above 400MB are rare.
  3. Increase receive_threads in Config->Special.
    This determines how many CPU threads are used for downloading and decoding yenc data.
  4. Check that logging is set to Errors/Warning only in the Status window.
    Especially the +Debug setting writes very frequently tiny bits of data to the disk. This increases CPU load for the writing and occupies the disk.
  5. Enable Only get articles for top of the queue in Config->Switches.
    For larger queues it can be beneficial as iterating through the queue to get the next article takes substantial amount of CPU power for large queues. The drawback is that if you have multiple servers then they will all have to wait for the first nzb to finish before any of them can continue to the next.
  6. Try different connection numbers in Config->Servers.
    A higher number will increase the overhead so more connections is not always better. It may also make web browsing, gaming and other internet activities less responsive while downloading.
  7. Change SSL Ciphers to AES128 or CHACHA20 in Config->Servers.
    This will slightly lower encryption strength but can greatly increase download speeds. CHACHA20 is useful for CPUs without hardware AES support (ie. Raspberry Pi) but is not supported by all servers.
  8. Try different values for downloader_sleep_time in Config->Special.
    SABnzbd will sleep for a short while between each check for new data to reduce CPU usage if possible. Suggested initial test values are 0 (disable, will use more CPU), 20 and 40.
  9. Set Maximum line speed to 0 in Config->General.
    This will slightly reduce the time used to keep track of the download speed.
  10. On SSD drives, make sure automatic SSD Trim is enabled.
    This is usually enabled by default on Windows but may not be on other systems. Do an internet search for ssd trim [your OS] to find the specifics for your system.

If neither of the above methods make a difference, have a look at how much CPU is being used while downloading. If it is at 100% then it is likely that your processor is too slow to maintain full speed. In the Status window ( ) you can run a PyStone CPU performance test. ARM based systems (NASes for example) will show much lower number (below 25000), and will have a lower maximum download speed than PCs with a current Intel/AMD CPU with a CPU Pystone available performance of 40000 or higher.

Results with different setups with 1GB and 10GB downloads

  1. On a 2017 Intel Celeron J4105 (4GB RAM, System Performance (Pystone) 95.000), built-in SSD and a 700/700 Mbps fiber line, SABnzbd can achieve a sustained 80 MB/s, thus linespeed.
  2. On an ARM box (512MB RAM, System Performance (Pystone) 8.000), SABnzbd can achieve a sustained 20 MB/s. The low-speed CPU and/or disk are the bottlenecks. So, checking: SABnzbd reports 25 MB/s on Incomplete and Complete, so that is the bottleneck.