NZBGet Performance Optimization Guide
NZBGet is one of the fastest and most resource-efficient Usenet download clients. But to truly maximize its potential, especially on high-speed connections or underpowered devices, you may need to tweak its configuration.
This guide outlines NZBGet performance optimizations to help you improve speed, reduce resource use, and prevent slowdowns during unpacking or queue processing.
1. Use the Latest Version of NZBGet
Every release of NZBGet includes performance fixes and improved handling of Usenet articles and post-processing. Before making any other changes, confirm you’re running the latest version.
- Download the latest NZBGet release
- Docker users: docker pull nzbgetcom/nzbget:latest
2. Match Connections to Your Usenet Plan
NZBGet works by opening multiple simultaneous connections to your Usenet server. More connections can improve speed — up to a point.
- Go to Settings > News-Servers
- Set the Connections value to your provider’s max
- If your CPU usage spikes or your speed drops, try lowering it
Tip: Some systems perform better with fewer connections, especially if disk I/O is the limiting factor.
3. Enable DirectWrite (For Fast Local Storage)
DirectWrite allows NZBGet to bypass memory caching and write data directly to disk, reducing CPU usage and improving throughput, especially on SSDs or fast internal drives.
⚠️ Note: DirectWrite relies on sparse file support, which is available in most modern filesystems. However, older systems like HFS+ do not support it. If your filesystem lacks sparse file support, DirectWrite may not function correctly.
- Go to Settings > Download Queue
- Set DirectWrite to yes
Avoid using DirectWrite if your MainDir points to a network share or USB drive.
Tip: DirectWrite and ArticleCache are closely related and can work well together. In fact, ArticleCache performs best when DirectWrite is enabled, as it allows for efficient writing of cached data directly to disk.
If using ArticleCache, set a modest size (e.g., 50–200 MB) depending on available RAM. Setting it too high or using mismatched configurations may reduce performance.
4. Adjust Article Cache Settings
The ArticleCache setting controls how much RAM is used to temporarily store article data before writing it to disk.
- Go to Settings > Download Queue
General Guidance
The article cache can significantly improve performance by reducing disk operations and fragmentation. Less fragmentation speeds up post-processing (like unpacking).
- When DirectWrite is enabled, even a small cache (50–100 MB) can be effective.
- When DirectWrite is disabled, the cache should be large enough to hold an entire article group—typically up to 200 MB, sometimes 500 MB — to avoid fallback to temporary directories, which degrades performance.
Available RAM | Recommended ArticleCache |
---|---|
Low (<1GB) | 0 |
Moderate (1–2GB) | 200 |
High (4GB+) | 1000 |
- Value 0 disables the article cache entirely.
- In 32-bit mode, the maximum allowed value is 1900.
5. Configure WriteBuffer (Optional Advanced Setting)
The WriteBuffer setting controls the per-connection buffer used by the operating system when writing articles to disk.
Larger values can reduce disk operations and file fragmentation, which improves post-processing speed.
- Go to Settings > Download Queue
- Set WriteBuffer to 1024 (recommended for systems with sufficient memory)
Tip: To calculate the total memory usage:
WriteBuffer × number of connections (set under News-Servers)
- Value 0 disables this setting and defaults to the OS/compiler’s buffer size, which is often too small (1–4 KB) and suboptimal for performance.
- Note: This setting is OS-dependent and may have varying effects based on your system.
6. Optimize Unpacking Performance
Unpacking can block NZBGet from processing the next queue item—especially if it’s configured to pause the queue or use inefficient tools.
Recommended settings (Settings > Unpack):
- UnrarCmd = unrar
- SevenZipCmd = 7z
- UnpackPauseQueue = no (lets downloads continue during unpacking)
Also check these options :
- ParPauseQueue = no (lets transfers continue during check/repair)
- ScriptPauseQueue = no (lets transfers continue during executing of postprocess-script)
Tip: Users with limited CPU can disable “ParRepair” in Settings > Check and Repair, but it’s not recommended in other cases.
7. Disable TLS (Optional – for Testing Only)
If you’re using an SSL/TLS connection (usually on port 563 or 443), your CPU must encrypt and decrypt traffic, which can reduce speeds on older systems.
- Switch to the non-SSL port (usually 119) temporarily for comparison
- Only do this on trusted networks, as traffic will be unencrypted
Tip: For most users, SSL should remain enabled. This step is for diagnosing CPU-related slowdowns only.
8. Avoid Slow External Drives
If your download path is set to a USB drive or network share (e.g., mounted NAS folder), disk I/O may be the bottleneck.
Recommended Solutions:
- Use a fast internal drive (preferably SSD) for MainDir.
- Only move completed items to the network share during post-processing.
For High-Performance Systems:
If you have a fast Internet connection and powerful hardware:
- Place InterDir on a fast disk—SSD.
- Keep InterDir and DestDir on separate physical drives if possible to reduce contention and improve throughput.
9. Reduce Logging and Debug Output
Excessive logging slows NZBGet down during unpacking and repair operations.
Go to Settings > Logging and adjust the following:
- DetailTarget = None
- LogBuffer = 20
This limits the number of log entries stored in memory before being flushed. - WriteLog:
Choose based on your monitoring preference:- no – disables writing logs to disk (for minimal overhead)
- rotate – NZBGet will write daily log files and retain them for the number of days specified by RotateLog
These settings reduce disk writes and CPU usage without sacrificing the ability to monitor performance—especially useful when paired with external monitoring tools.
10. Advanced System Tweaks (Linux Only)
⚠️ Note: This modification makes sense on low-end systems where NZBGet’s operation interferes with other processes.
⚠️ Note: Lowering the priority will also result in longer downloads (especially on a loaded system)
On Linux systems, you can reduce NZBGet’s system impact:
- Set Nice level to 10 in Settings > SYSTEM
(lowers CPU priority to favor other apps) - Use ionice to lower disk I/O priority: ionice -c3 nzbget
11. Optional: Use RAM Disks (Advanced Users Only)
If you want maximum unpack and processing performance:
- Use a RAM disk for QueueDir, InterDir, or TempDir
- This reduces write latency but may result in data loss after reboot
⚠️ Only attempt this if you’re comfortable with Linux administration.
12. Watch Logs and System Metrics
Monitoring is the best way to catch hidden issues:
- Messages tab: Look for retries, timeouts, or unpacking delays
- NZBGet logs: See nzbget.log for detailed behavior
- System tools: Use htop, Task Manager, or similar to monitor CPU, RAM, and disk activity
- Network: Check router/firewall logs for blocked or throttled connections
Quick Optimization Summary
- Always run the latest version
- Match your connection count to your provider and system
- Configure DirectWrite and ArticleCache according to your setup possibilities
- Optimize unpacking to reduce queue stalls
- Avoid slow drives and reduce logging overhead
- Monitor system metrics to stay ahead of performance issues
With these tweaks, NZBGet will achieve fast, stable performance—even on minimal hardware.
Introduction
Installation manuals
- Installation on Windows
- Installation on Windows via WinGet
- Installation on macOS
- Installation on macOS via Homebrew
- Installation on Linux
- Installation on Docker
- Installation on Docker - LinuxServer.io version
- Installation on Android
- Installation on Synology
- Installation on QNAP
- Installation on other NAS devices
Building manuals
Configuration
- Backup And Restore Settings
- Performance Tips
- Choosing Cipher
- Behind Other Web Server
- TLS certificate verification
- What is the Default NZBGet Password?
- NZBGet Docker Setup Guide
- NZBGet Port Settings and Access Guide
- How to Configure NZBGet: Complete Setup Guide
- What Is Usenet?
- NZBGet 502 Error: Quick Fix Guide
- How to Upgrade from NZBGet v21.1 to the Latest NZBGet Version
- Slow NZBGet Speeds? Here’s How to Fix It
- NZBGet Performance Optimization Guide
- NZBGet Path and Folder Structure Guide
- How to Link NZBGet with Sonarr, Radarr, and Other Tools
Usage
- Quick Filter
- Keyboard Shortcuts
- RSS and duplicate check
- VideoSort
- Console Mode
- Command Line Reference
- Performing Speed Tests
Development
Extensions
- Extension Scripts
- Post-processing scripts
- Scan Scripts
- Queue Scripts
- Scheduler Scripts
- Feed Scripts
- API reference
News server setup
- Astraweb
- BlockNews
- Cheapnews
- EasyNews
- Eweka
- FreeDiscussions
- Frugal Usenet
- GigaNews
- NewsDemon
- Newsgroup Ninja
- NewsgroupDirect
- Newshosting
- Pure Usenet
- SunnyUsenet
- Supernews
- theCubeNet
- ThunderNews
- TweakNews
- Usenet.Farm
- UsenetExpress
- UsenetServer
- UseNext
- ViperNews
- XLned
- XS News