Best Torrent Settings for Long-Term Seeding
Configuring a BitTorrent client for long-term seeding (often called perma-seeding) requires shifting the client’s focus from rapid downloading to resource efficiency, high peer accessibility, and continuous availability. This guide covers the essential adjustments needed to maintain thousands of active seeds, manage upload bandwidth effectively, reduce disk wear, and ensure your client remains connectable to the swarm indefinitely.
Remove Seeding Limits and Ratios
By default, many clients automatically pause torrents once they hit a specific share ratio (such as 1.0 or 2.0) or after a certain amount of idle time. * Ratio Limits: Set the maximum share ratio limit to -1 or Infinite (or uncheck “Stop seeding when ratio reaches”). * Seeding Time: Set the maximum seeding time to Infinite to prevent torrents from automatically pausing. * Auto-Stop Rules: Disable any rules that automatically remove or pause inactive torrents.
Adjust Queueing and Active Torrent Caps
Standard configurations restrict the client to only a few active
torrents at a time to maximize download speed. Long-term seeding
requires the client to announce and listen on all loaded torrents
simultaneously. * Maximum Active Torrents: Set this to
a very high number (e.g., 500 to 2000) or
0 (unlimited), depending on what your client supports. *
Maximum Active Uploads/Seeds: Match this to your
maximum active torrent limit. * Slow Torrent Handling:
Disable options like “Do not count slow torrents” or configure them so
idle seeds remain open to incoming requests.
Optimize Connection and Peer Limits
Managing connections properly ensures your client does not exhaust
system memory, router NAT tables, or available bandwidth. *
Global Maximum Connections: Set between
500 and 1000. Setting this too high can crash
consumer-grade routers. * Maximum Connected Peers per
Torrent: Lower this value to 10–30.
Since long-term seeds often sit idle waiting for rare requests, you do
not need many open connections per individual torrent. * Upload
Slots per Torrent: Set to 2–4 or use
automatic/dynamic allocation. This prevents your upload bandwidth from
being fragmented into tiny, inefficient streams across too many
peers.
Configure Bandwidth and Upload Rates
To maintain a stable long-term seedbox or home server, bandwidth must be throttled just below network capacity to avoid packet loss. * Global Upload Speed: Set this to roughly 80% to 85% of your total ISP upload bandwidth. Running at 100% upload capacity causes bufferbloat, latency spikes, and dropped peer connections. * Download Speed Limit: Lower the global download limit if you are running out of storage or purely focusing on uploading. * Apply Rate Limits to Transport Overhead: Enable this setting to ensure protocol overhead does not bypass your upload limits.
Optimize Disk Cache and Storage
Serving data for hundreds of torrents creates random read patterns,
which can cause heavy disk thrashing on mechanical drives. *
Increase Disk Cache: Increase the client’s RAM cache
size (e.g., 512MB to 2048MB or higher,
depending on available system RAM) to serve frequently requested pieces
directly from memory. * Read Caching: Ensure “Enable
caching of disk reads” is turned on. * Disable OS Cache for
Reads: In clients like qBittorrent, selecting modern disk I/O
modes (like POSIX-compliant asynchronous I/O) helps prevent the
operating system from duplicating read caches and exhausting system
memory.
Ensure Full Connectability (Port Forwarding)
A long-term seeder must be connectable so that peers behind
restrictive NATs or firewalls can initiate connections. * Static
Port: Set a specific, non-default incoming port (between
49152 and 65535). * Port
Forwarding: Forward this port in your router settings to the
local IP address of your seeding machine, or use a VPN that supports
explicit port forwarding. * UPnP / NAT-PMP: Disable
UPnP/NAT-PMP if you have configured manual port forwarding to ensure
connection stability. * Peer Discovery: Keep
DHT, PeX (Peer Exchange), and
LSD (Local Peer Discovery) enabled for public trackers.
For private trackers, these should remain managed by the tracker’s
private flag.