Per-Torrent speed limits

Discussion of Transmission that doesn't fit in the other categories
Post Reply
KyleK
Posts: 57
Joined: Fri Feb 29, 2008 10:41 pm

Per-Torrent speed limits

Post by KyleK »

I'm currently running transmission-daemon (svn7142) on a Linux machine.
Neither the web interface nor transmission-remote allow the setting of per-torrent speed limits, so I wrote a little Ruby script which directly communicates with the daemon via JSON RPC.

I can set up- and downspeed limits for single torrents, this works just fine.

The problem I discovered is that once a torrent has set its own speed limit, the global limits are completely ignored.

My global up-limit is set to 50KB/s. I have 2 torrents downloading, at first without separate speed limits. One torrent uploads at 47KB/s while the other only gets 3KB/s.
I want it the other way around, so I limit the first torrent to 10KB/sec.
The torrent is limited to 10KB/s, but the remaining torrent now uploads at 50KB/s.

I can even set both separately to 70KB/s upload limit and Transmission will upload at 140KB/s.


Is this expected behaviour?
castor
Posts: 4
Joined: Mon Oct 27, 2008 6:08 pm

Re: Per-Torrent speed limits

Post by castor »

Hi, I run into exaclly the same issue.

Did you manage to over come the ignoring of global limit when limits are set on per torrent basis?
KyleK
Posts: 57
Joined: Fri Feb 29, 2008 10:41 pm

Re: Per-Torrent speed limits

Post by KyleK »

Hm,

I haven't had to use my scripts for a while, but I believe there were bugs in Transmission that caused this which had been fixed.
I can say that when using Transmission Remote GUI it works as expected.
castor
Posts: 4
Joined: Mon Oct 27, 2008 6:08 pm

Re: Per-Torrent speed limits

Post by castor »

thanks. I will update the transmission then and will have a look at the conversation between it and the mentioned gui
erins2
Posts: 2
Joined: Fri Nov 05, 2010 2:21 pm

Re: Per-Torrent speed limits

Post by erins2 »

I know this is an old thread, but...

Is there now a way to set per-torrent limits using transmission-remote? If not, could KyleK (or anyone else) share their workarounds?
gunzip
Posts: 272
Joined: Wed May 05, 2010 2:12 am

Re: Per-Torrent speed limits

Post by gunzip »

erins2 wrote:Is there now a way to set per-torrent limits using transmission-remote?
yes that's been in recent versions for some time now.

transmission-remote -t <ID> -d 75
transmission-remote -t <ID> -u 20

for setting individual torrent down and up speed limits in KiB/s
erins2
Posts: 2
Joined: Fri Nov 05, 2010 2:21 pm

Re: Per-Torrent speed limits

Post by erins2 »

gunzip wrote: transmission-remote -t <ID> -d 75
transmission-remote -t <ID> -u 20

for setting individual torrent down and up speed limits in KiB/s
This appears to set a global limit (i.e. the "-d" ignores any "-t").

The bottom of my man page says "July 21, 2008" Am I out of date?
gunzip
Posts: 272
Joined: Wed May 05, 2010 2:12 am

Re: Per-Torrent speed limits

Post by gunzip »

erins2 wrote:The bottom of my man page says "July 21, 2008" Am I out of date?
this is "transmission-remote --help" from transmission-remote 2.11+

Code: Select all

transmission-remote 2.11+ (11356)
A fast and easy BitTorrent client
http://www.transmissionbt.com/

Usage: transmission-remote [host] [options]
       transmission-remote [port] [options]
       transmission-remote [host:port] [options]

See the man page for detailed explanations and many examples.

Options:
 -h   --help                               Display this help page and exit
 -a   --add                                Add torrent files by filename or URL
 -as  --alt-speed                          Use the alternate Limits
 -AS  --no-alt-speed                       Don't use the alternate Limits
 -asd --alt-speed-downlimit    <speed>     max alternate download speed (in
                                           KiB/s)
 -asu --alt-speed-uplimit      <speed>     max alternate upload speed (in
                                           KiB/s)
 -asc --alt-speed-scheduler                Use the scheduled on/off times
 -ASC --no-alt-speed-scheduler             Don't use the scheduled on/off times
      --alt-speed-time-begin   <time>      Time to start using the alt speed
                                           limits (in hhmm)
      --alt-speed-time-end     <time>      Time to stop using the alt speed
                                           limits (in hhmm)
      --alt-speed-days         <days>      Numbers for any/all days of the week
                                           - eg. "1-7"
      --blocklist-update                   Blocklist update
 -c   --incomplete-dir         <dir>       Where to store new torrents until
                                           they're complete
 -C   --no-incomplete-dir                  Don't store incomplete torrents in a
                                           different location
 -b   --debug                              Print debugging information
 -d   --downlimit              <speed>     Set the max download speed in KiB/s
                                           for the current torrent(s) or
                                           globally
 -D   --no-downlimit                       Disable max download speed for the
                                           current torrent(s) or globally
 -e   --cache                  <size>      Set the maximum size of the session's
                                           memory cache (in MiB)
 -er  --encryption-required                Encrypt all peer connections
 -ep  --encryption-preferred               Prefer encrypted peer connections
 -et  --encryption-tolerated               Prefer unencrypted peer connections
 -f   --files                              List the current torrent(s)' files
 -g   --get                    <files>     Mark files for download
 -G   --no-get                 <files>     Mark files for not downloading
 -i   --info                               Show the current torrent(s)' details
 -if  --info-files                         List the current torrent(s)' files
 -ip  --info-peers                         List the current torrent(s)' peers
 -ic  --info-pieces                        List the current torrent(s)' pieces
 -it  --info-trackers                      List the current torrent(s)'
                                           trackers
 -si  --session-info                       Show the session's details
 -st  --session-stats                      Show the session's statistics
 -l   --list                               List all torrents
      --move                   <path>      Move current torrent's data to a new
                                           folder
      --find                   <path>      Tell Transmission where to find a
                                           torrent's data
 -m   --portmap                            Enable portmapping via NAT-PMP or
                                           UPnP
 -M   --no-portmap                         Disable portmapping
 -n   --auth                   <user:pw>   Set username and password
 -N   --netrc                  <file>      Set authentication info from a .netrc
                                           file
 -o   --dht                                Enable distributed hash tables (DHT)
 -O   --no-dht                             Disable distributed hash tables
                                           (DHT)
 -p   --port                   <port>      Port for incoming peers (Default:
                                           51413)
 -pt  --port-test                          Port testing
 -P   --random-port                        Random port for incomping peers
 -ph  --priority-high          <files>     Try to download these file(s) first
 -pn  --priority-normal        <files>     Try to download these file(s)
                                           normally
 -pl  --priority-low           <files>     Try to download these file(s) last
 -Bh  --bandwidth-high                     Give this torrent first chance at
                                           available bandwidth
 -Bn  --bandwidth-normal                   Give this torrent bandwidth left over
                                           by high priority torrents
 -Bl  --bandwidth-low                      Give this torrent bandwidth left over
                                           by high and normal priority torrents
 -r   --remove                             Remove the current torrent(s)
 -pr  --peers                  <max>       Set the maximum number of peers for
                                           the current torrent(s) or globally
      --remove-and-delete                  Remove the current torrent(s) and
                                           delete local data
      --torrent-done-script    <file>      Specify a script to run when a
                                           torrent finishes
      --no-torrent-done-script             Don't run a script when torrents
                                           finish
 -sr  --seedratio              ratio       Let the current torrent(s) seed until
                                           a specific ratio
 -srd --seedratio-default                  Let the current torrent(s) use the
                                           global seedratio settings
 -SR  --no-seedratio                       Let the current torrent(s) seed
                                           regardless of ratio
 -gsr --global-seedratio       ratio       All torrents, unless overridden by a
                                           per-torrent setting, should seed
                                           until a specific ratio
 -GSR --no-global-seedratio                All torrents, unless overridden by a
                                           per-torrent setting, should seed
                                           regardless of ratio
 -ta  --tracker-add            <tracker>   Add a tracker to a torrent
 -tr  --tracker-remove         <trackerId> Remove a tracker from a torrent
 -s   --start                              Start the current torrent(s)
 -S   --stop                               Stop the current torrent(s)
 -t   --torrent                <torrent>   Set the current torrent(s)
      --start-paused                       Start added torrents paused
      --no-start-paused                    Start added torrents unpaused
      --trash-torrent                      Delete torrents after adding
      --no-trash-torrent                   Do not delete torrents after adding
 -hl  --honor-session                      Make the current torrent(s) honor the
                                           session limits
 -HL  --no-honor-session                   Make the current torrent(s) not honor
                                           the session limits
 -u   --uplimit                <speed>     Set the max upload speed in KiB/s for
                                           the current torrent(s) or globally
 -U   --no-uplimit                         Disable max upload speed for the
                                           current torrent(s) or globally
 -v   --verify                             Verify the current torrent(s)
 -V   --version                            Show version number and exit
 -w   --download-dir           <path>      When adding a new torrent, set its
                                           download folder.  Otherwise, set the
                                           default download folder
 -x   --pex                                Enable peer exchange (PEX)
 -X   --no-pex                             Disable peer exchange (PEX)
 -y   --lpd                                Enable local peer discovery (LPD)
 -Y   --no-lpd                             Disable local peer discovery (LPD)
 -pi  --peer-info                          List the current torrent(s)' peers
as you can see you can set limits both globally and on individual torrents.
Post Reply